[英]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.