我正在尝试从文本文件中读取文本,读取行,删除包含特定字符串的行(在这种情况下为“坏”和“顽皮”)。
我写的代码是这样的:

infile = file('./oldfile.txt')

newopen = open('./newfile.txt', 'w')
for line in infile :

    if 'bad' in line:
        line = line.replace('.' , '')
    if 'naughty' in line:
        line = line.replace('.', '')
    else:
        newopen.write(line)

newopen.close()

我这样写,但没有成功。

重要的一件事是,如果文本的内容是这样的:
good baby
bad boy
good boy
normal boy

我不希望输出有空行。
所以不喜欢:
good baby

good boy
normal boy

但是像这样:
good baby
good boy
normal boy

我应该从上面的代码中编辑什么?

最佳答案

您可以像这样使代码更简单,更易读

bad_words = ['bad', 'naughty']

with open('oldfile.txt') as oldfile, open('newfile.txt', 'w') as newfile:
    for line in oldfile:
        if not any(bad_word in line for bad_word in bad_words):
            newfile.write(line)

使用Context Managerany

关于python - 删除包含某些字符串的行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11968998/

10-11 17:58