[英]remove specific lines if some specific word is found
可以说我有一个包含以下单词的文本文件
a
b
c
d
e>
f
g
h
I>
j
每当我发现包含>
的单词时,我都希望替换掉它本身的最后两行。
例如,输出为this。
a
b
f
j
有可能实现这一目标吗? 对于简单的替换,我可以做到这一点
with open ('Final.txt', 'w') as f2:
with open('initial.txt', 'r') as f1:
for line in f1:
f2.write(line.replace('>', ''))
但是,我坚持如何返回并删除最后两行以及发生替换的行。
这是一种使用简单迭代和列表切片的方法。
例如:
res = []
with open('initial.txt') as infile:
for line in infile:
if ">" in line:
res = res[:-2]
else:
res.append(line)
with open('Final.txt', "w") as f2:
for line in res:
f2.write(line)
输出:
a
b
f
j
使用re
。 在这里,我假设您的数据是行的平面列表。
import re
print(re.sub('.*\n.*\n.*>\n','',''.join(data)))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.