前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python自动化之如何格式化SPD.excel数据?

Python自动化之如何格式化SPD.excel数据?

作者头像
极简小课
发布2022-06-27 14:10:59
1K0
发布2022-06-27 14:10:59
举报
文章被收录于专栏:极简小课极简小课

前几篇文章我们介绍了处理txt文档,格式化数据为我们所用,但是有时客户给的数据不一定是txt格式,这篇文章,我们来介绍下如何处理excel文档,从里面提取我们需要的信息并格式化数据。

我们这次处理的数据是内存厂商提供的SPD信息,是excel格式的,先看下这一次我们要数据。

原始数据:

然后我们想处理为如下的格式来使用,处理后的格式:

我们还是分三个步骤来做

读取原始文件

这次我们使用第三方库pandas来读取文件,pandas是用来做数据分析很重要的库,可以直接读取很多文件类型,比如我们此次要操作的excel文件。

我们使用pandas的read_excel函数去读取文件, 然后使用iloc去提取需要的HEX列。

具体用法如下:

代码语言:javascript
复制
def read_data_file(file_name, sheet_names, mid_file_name):
    import pandas as pd
    # 读取工作簿和工作簿中的工作表
    data_frame = pd.read_excel(file_name, sheet_name=sheet_names)
    df = data_frame.iloc[3:, 5:] # 第三行开始,提取所有HEX列, HEX列是第五列
    df.to_csv(mid_file_name, sep='\t', index=False) # 把HEX列保存到txt文件

处理数据格式

我们先来比较下原始数据格式与我们想要的数据格式。

我们只需要提取HEX列的数据,然后在每个数据前面加上“0x”,在按8个数据为一行进行分行,并给每行加上序列号。

代码如下:

代码语言:javascript
复制
def format_data(mid_file_name):
    with open(mid_file_name, "r") as fr:
    contents = fr.readlines()
    for index, value in enumerate(contents):
        if index is not 0:
            contents = ''.join(["0x", value]).replace("\n", '')
            with open(output_file, "a") as fw:
                if index % 8 == 0:
                    fw.write(contents + ",\n//{0}-{1}\n".format(index, index+7))
                else:
                    fw.write(contents + ", ")

运行主函数

这边我们把前面定义好的功能组合起来,就可以实现了,代码如下:

代码语言:javascript
复制
import os
import sys
import datetime

if __name__ == "__main__":
    file_name = sys.argv[1] # 得到用户输入excel的文件
    sheet_names = sys.argv[2] # 得到榕湖输入的要读取excel表格的sheet名字
    output_time = datetime.datetime.now().strftime("%Y-%m-%d-%H%M%S") # 获取当时时间并格式化
    output_name = os.path.basename(file_name).split(".")[0] # 获取用户输入文件名字
    output_file = output_name + "_" + output_time + ".txt" # 输出文件名
    
    mid_file_name = "SPD.txt"
    
    read_data_file(file_name, sheet_names, mid_file_name)
    format_data(mid_file_name )

    print("Finished, please check file-> " + output_file)

这篇文章我们介绍了如何操作excel文件, 有时候SPD信息是以pdf格式给的,所以下篇我们介绍如何操作pdf文件,提取我们要的内容并格式化。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-09-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 极简小课 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 读取原始文件
  • 处理数据格式
  • 运行主函数
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档