簡體   English   中英

如果找到某些特定的單詞,請刪除特定的行

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM