假设我的输入文件如下所示:
lines
BeginModeData apple
lines
EndModuleData
BeginModeData banana
lines
EndModuleData
BeginModeData orange
lines
EndModuleData
...
我喜欢删除属于“香蕉”的所有行,所以它看起来像这样:
^{pr2}$现在,我的python代码几乎可以工作了,但它也可以是任何其他“EndModuleData”,这不是我想要的:
linelist = open("infile.txt").readlines()
newfile = open('outfile', 'w')
flag = 1
for line in linelist:
if line.startswith("BeginModeData banana"):
flag = 0
if line.startswith("EndModuleData"):
flag = 1
if flag and not line.startswith("EndModuleData"):
newfile.writelines(line)
如何改进我的小代码以使其工作?谢谢你的帮助。在
您可以在一个字符串中读取整个文件,并使用Python的regex模块^{} 替换整个模式:
试试这个:
另外,在处理文件对象时,最好使用
^{pr2}$with
关键字。这样做的好处是,文件在其套件完成后会正确关闭,即使在此过程中引发了异常:相关问题 更多 >
编程相关推荐