我有如下多个文本文件:
我想读取所有的文本文件,并在每个文件中找到IP值,并将其替换为文本中可用的noresult字符串,并在python中保存每个文件。
将Text1
Id = 0005
Cause = ERROR
Code = 307
Event Time = 2020-11-09 10:16:48
Severity = WARNING
Severity Code = 5
result = noresult
Id = 0006
Cause = FAILURE
Code = 517
Event Time = 2020-11-09 10:19:47
Severity = MINOR
Severity Code = 4 result = noresult
ip[10.1.1.1
Text2
Id = 0007
Cause = ERROR
Code = 307
Event Time = 2020-11-09 10:16:48
Severity = WARNING
Severity Code = 5
Id = 0008
Cause = FAILURE
result = noresult
Code = 517
Event Time = 2020-11-09 10:19:47
Severity = MINOR
Severity Code = 4
result = noresult
ip[10.1.1.3
必要的结果:将Text1
Id = 0005
Cause = ERROR
Code = 307
Event Time = 2020-11-09 10:16:48
Severity = WARNING
Severity Code = 5
result = 10.1.1.1
Id = 0006
Cause = FAILURE
Code = 517
Event Time = 2020-11-09 10:19:47
Severity = MINOR
Severity Code = 4 result = 10.1.1.1
ip[10.1.1.1
Text2
Id = 0007
Cause = ERROR
Code = 307
Event Time = 2020-11-09 10:16:48
Severity = WARNING
Severity Code = 5
Id = 0008
Cause = FAILURE
result = 10.1.1.3
Code = 517
Event Time = 2020-11-09 10:19:47
Severity = MINOR
Severity Code = 4
result = 10.1.1.3
ip[10.1.1.3
如果ip始终是您的最后一个字段,您可以简单地这样做:
txt = txt.replace("noresult", txt.split("ip[")[-1])
具体来说,如果你想读、修改和写:
txt = open("filename.txt", "r").read()
txt = txt.replace("noresult", txt.split("ip[")[-1])
open("filename.txt", "w").write(txt)
如果您有更多的文件,您可以将它们的路径分组在列表file_list = ["file1.txt", "file2.txt", ... ]
中,然后在此列表上循环重复上述过程:
for filepath in file_list:
txt = open(filepath, "r").read()
txt = txt.replace("noresult", txt.split("ip[")[-1])
open(filepath, "w").write(txt)