您的位置:首页 > 编程语言 > Python开发

运用python提取文本信息实战-rdoq time matching

2016-10-11 15:09 489 查看
RDOQ Time Matching 实战:

目标:提取rdoq的运行时间。

工程中rdoq运行时间用全局变量统计,编码结束后获得rdoq总的运行时间。

原始做法是将该变量全部连续的写到一个文件里,每次手动填表

python 批处理 结合的尝试 还未完全理解

但是将runtime写到屏幕上,->转入log文件中,直接对log文件的信息做匹配提取,效果也是一样的佳。

要解决的问题:

1、匹配,好简单

2、遍历一个文件夹中的所有文件再做匹配

重点解决的是第二个

pathDir = os.listdir('C:/Users/wangm/Desktop/Bat/RA/log')


将路径下的所有的文件名当作字符串,写在了pathDir中,他是一个list

接下来的操作就可以按照粗暴的list循环的方式做

for filename in pathDir:
c = ''
c = 'C:/Users/wangm/Desktop/Bat/RA/log/' + filename
file_object  = open(c, 'r')
print(file_object)

while 1:
chunk = file_object.readline()
if chunk == '':
break
matchTime = 'RdoqTime'
time = matching(chunk, matchTime, [1])
if time:
write_time(time, filename, "0.00")

print(time)
break


另一种结局方式是,为了保证每次读取文件数据的顺序,可以先按照表格顺序建表~

c变量的构成还是粗爆的。

f_out = open('C:/Users/wangm/Desktop/Bat/RA/rdoq.txt', 'w+')
import re
import string
import os

def matching(chunk, matchsyntax, index):
if re.match(matchsyntax, chunk):
splitWord = re.split(r'\s+', chunk)
matchWord = []
for i in index:
matchWord.append(splitWord[i])
return matchWord

def write_time(time, filename, incline):
f_out.write("%-10s"%(time[0]))
f_out.write(" ")
f_out.write("%40s"%(filename))
f_out.write(" ")
f_out.write(incline)
f_out.write("\n")
try:
pathDir = os.listdir('C:/Users/wangm/Desktop/Bat/RA/log')
write_time(["Time"], "FileName", "0.00")#Tag
for filename in pathDir: c = '' c = 'C:/Users/wangm/Desktop/Bat/RA/log/' + filename file_object = open(c, 'r') print(file_object) while 1: chunk = file_object.readline() if chunk == '': break matchTime = 'RdoqTime' time = matching(chunk, matchTime, [1]) if time: write_time(time, filename, "0.00") print(time) break
finally:
file_object.close()
f_out.close()



在文本输出格式方面,对其什么的为了方便复制粘贴还是有讲究的

f_out.write(“%-10s”%(time[0]))

带格式的写文件
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐