繁体   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