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

Python自动化之如何格式化VerbTable.txt数据?

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

上一篇文章我们介绍了处理简单的txt文档,格式化数据为我们所用,但是有时客户给的数据不会这么简单,而是比较复杂的内容,这篇文章,我们来介绍下更复杂的txt文档,从里面提取我们需要的信息并格式化数据。

处理复杂的数据文档,流程也是一样的,只不过是在处理数据这一块更复杂一点。

我们先看下这一次我们要处理的VerbTable数据。

原始数据:

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

我们还是分三个步骤来做

读取原始文件

这次我们使用read函数一次性读入全部内容,然后再去做处理。

具体用法如下:

代码语言:javascript
复制
def read_data_file(file_name):
    with open(file_name, "r") as fr: # file_name就是你要打开的文件名
        contents = fr.read() # 一次性全部读取文件内容
    return contents

处理数据格式

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

我们只需要“;===== HDA Codec Subsystem ID Verb-table =====”之后的数据,所以我们用split来分割后取后面的数据.

要把“;”转换为“//”, 把“dd ”转化为“0x”, 把“h”转化为“,”, 所以,我们使用replace来替换。

代码如下:

代码语言:javascript
复制
def format_data(contents):
    verb_tables = contents.split(";===== HDA Codec Subsystem ID Verb-table =====")
    format_verb_datas = verb_table[1].replace(";", "//").replace("dd ", "0x").replace("h", ",")
    return format_verb_datas

写入新文件

写入文件没有什么大的区别,就是写入参数做一下变化,我们不需要追加的模式写入,直接一次性写入就行了,使用“w”参数,代码如下:

代码语言:javascript
复制
def write_to_file(output_file, format_contents):
    with open(output_file, "w") as fw:
        fw.write(format_contents)

运行主函数

主函数和上篇可以说没有任何改变,所以我们在实现函数式,尽量做到模块化,可以重复利用,代码如下:

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

if __name__ == "__main__":
    file_name = sys.argv[1] # 得到用户输入的文件
    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" # 输出文件名
    
    before_datas = read_data_file(file_name)
    format_datas = format_data(before_datas)
    write_to_file(output_file, format_datas)
    
    print("Finished, please check file-> " + output_file)

前两篇我们都是处理的txt文档数据,基本没什么难度,下一篇我们介绍下如何处理excel文档,从SPD的excel里面提取某一列的数据并格式化为我们需要的格式。

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

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

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

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

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