这学期从开学到现在,关于自动化处理文件的编程需求已经做过一次了,上次是处理excel文件,用Java语言写的,因为文件内容牵涉到学生信息,就没有写博客公布源码了。需求是师姐提出来的,这次是采用python语言实现的。
需求:将几千份文本文件读取出来,提取里面的数据进行比较大小。
思路:刚开始想用正则表达式提取内容,但真正开始写的时候发现这不是一个明智的选择,首先正则表达式需要预先定义规则,但这里面的变量有点多,而且每个文本里面的变量明并不固定,所以预先用正则表达式写规则太麻烦了。所以换成切割数据的方式处理。中间还想过set和json的方式去处理,但因时间关系和python功力浅薄就放弃了。
建立工程:autoTXT
core文件夹用来存放代码
data文件夹用来放数据
input文件夹下用来放待处理文件
output文件夹用来方式提取出来的变量文件,变量名定义成文件名,文件内容存放变量数据
MinMax文件夹下存放比较大小结果文件
晚饭回来后根据需求很快就把代码写好了,随后发给师姐后就去怕跑步了,跑完步回来后师姐给我说有个奇怪的bug...........
发现有两个变量比较出来不一样,这个bug确实奇怪,比如其中一个变量里的列表数据里面全部是‘13’但比较结果出来后竟然是最大值9,最小值10,一脸懵逼。
我没有细看python自带min()和max()函数是怎么比较的字符串大小的,索性全部转成int型后,结果正常了
源码已上传github,由于文件数量有点多,故删除了大量input文件夹下的数据文件,如果您打开了链接那就麻烦点个星星。
链接:https://github.com/JGPY/Python_The-wisdom-of-life/tree/master/autoTXT