我正在写一个小的python脚本,它接受一个日志文件,匹配其中的字符串并保存它们和另一个自定义字符串" goal"到另一个文本文件。然后我从第二个文件中取一些值并将它们添加到列表中。问题在于,根据自定义字符串的长度(例如" goalgoalgoal"),值的列表长度不同 - 目前,我正在使用包含1031个匹配项的日志文件字符串"目标",但列表的长度不同于~980和1029之间的所有内容。
以下是代码:
for line in inputfile:
if "Started---" in line:
startTime = line[11:23]
testfile.write("\n"+"Start"+"\n"+"goal "+ startTime+"\n")
counterLines +=1
elif "done!" in line:
testfile.write("\n"+find_between(line, "| ", "done!")+"\n")
elif "Errors:" in line:
testfile.write("\n"+"Errors:"+line.split("Errors:",1)[1]+"\n")
elif "Warnings:" in line:
testfile.write("\n"+"Warnings:"+line.split("Warnings:",1)[1]+"\n")
elif "Successes:" in line:
testfile.write("\n"+"Successes:"+line.split("Successes:",1)[1]+"\n")
elif "END---" in line:
endTime = line[11:23]
testfile.write("\n"+"End"+"\n"+"endTime "+ endTime+"\n")
else:
print("nothing found")
testfileread = open(filePath+"\\testFile.txt", "r")
startTimesList = []
endTimesList = []
for line in testfileread:
matchObj = re.match(r'goal', line)
if matchObj:
startTimesList.append(line)
print(len(startTimesList))
您是否知道为什么代码没有按预期工作?
提前谢谢!
答案 0 :(得分:2)
最有可能的原因是你写完后没有刷新testFile.txt
- 因此,当你开始阅读时,文件中有不可预测的数据量。调用testfile.flush()
应该可以解决问题。或者,将写入逻辑包装在with
块中。