我有一个包含多个命令的大型日志(以;结尾)及其输出(直到END),如下所示:
<blabla;
foo
...
...
END
<xyz;
...
...
END
--and so on
要求使用具有命令名称的单独文件,如
blabla
xyz
并且在每个文件中应该是它们各自的输出。
到目前为止,我有:
def generateDicts(log_fh):
currentDict = {}
for line in log_fh:
if line.endswith(";"):
if line.endswith("END"):
yield currentDict
currentDict = {""}
else:
currentDict["text"] += line
yield currentDict
with open("logfile.txt") as f:
print list(generateDicts(f))
请帮忙。
答案 0 :(得分:1)
你的帖子说你需要写文件,但你的例子没有做任何文件I / O.这是一个打开,关闭和写入文件的程序。
label
答案 1 :(得分:0)
您可以使用re
模块
import re
with open('test','r') as f,open('output','w') as f1:
f1.write("\n".join(re.findall(r'\<(\w+)\;',f.read())))
输出:
blabla
xyz
但是,如果文件太大,您可以考虑从文件中逐行读取,而不是整体读取。