如何删除包含某个字符串的行?

时间:2012-08-15 03:24:09

标签: python replace line

我在这里要做的是: 1.从文本文件中读取行。 2.找到包含某些字符串的行。 3.删除该行并将结果写入新的文本文件中。

例如,如果我有这样的文字:

Starting text
How are you?
Nice to meet you
That meat is rare
Shake your body

如果我的某些字符串是'是' 我希望输出为:

Starting text
Nice to meet you
Shake your body

我不想要像:

Starting text

Nice to meet you

Shake your body

我正在尝试这样的事情:

opentxt = open.('original.txt','w')
readtxt = opentxt.read()

result = readtxt.line.replace('are', '')

newtxt = open.('revised.txt','w')
newtxt.write(result)
newtxt.close()

但它似乎不起作用......

有什么建议吗?任何帮助都会很棒!

提前致谢。

2 个答案:

答案 0 :(得分:3)

一如既往。开源文件,打开目标文件,只需要将源文件中的行复制到目标文件中,关闭这两个文件,将目标文件重命名为源文件。

答案 1 :(得分:3)

with open('data.txt') as f,open('out.txt') as f2:
    for x in f:
        if 'are' not in x:
            f2.write(x.strip()+'\n')  #strip the line first and then add a '\n', 
                                      #so now you'll not get a empty line between two lines