处理文本文件:如果找到关键字,则删除行

时间:2016-06-03 17:22:33

标签: python text

所以我试图清理一个我拥有的文本文件(它实际上是一个区域文件,可以加载到天文学适合查看器DS9)。我想删除/删除包含关键字" red"的所有行/(s)的全部内容。在其中,例如:

image;circle(2384.21957861,231.579450647,10.3410929712) # color = red text = {24}

有人知道如何在python中实现这一目标吗?

2 个答案:

答案 0 :(得分:2)

打开一个outfile(outfile.txt)进行写入,打开输入文件(textfile.txt),逐行扫描输入文件,扫描关键字(红色)。如果行中没有红色,则将其写入outfile。

with open('outfile.txt', 'w') as o:
    with open('textfile.txt') as f:
        for line in f.readlines():
            if 'red' not in line:
                o.write(line)

确保文件与python脚本位于同一目录中。

答案 1 :(得分:0)

基于@algor建议的this answer,你可以尝试:

f = open("textfile.txt","r+")
d = f.readlines()
f.seek(0)
for line in d:
    if 'red' not in line:
        f.write(i)
f.truncate()
f.close()