删除包含特定单词的所有行

Remove all lines containing a certain word

有这样一个字符串:

AAAA AAAA
BBBB BBBB
CCCC CCCC
DDXD DDDD
EEEE EEEE
FXFF RRRR

如何删除所有包含“X”的行?

我知道我可以从 txt 文件中完成,但我想直接从字符串中完成...

结果必须是:

AAAA AAAA
BBBB BBBB
CCCC CCCC
EEEE EEEE

我试过:

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)

试试这个:

with open("file.txt", "r") as f:
    lines = f.readlines()
with open("file.txt", "w") as f:
    for line in lines:
        if not "X" in line:
            f.write(line)

您可以使用列表推导式轻松完成此操作。遍历您的字符串(按 \n 拆分),如果发现一行没有 X,则将其附加到列表中。

stringRemoval = "AAAA AAAA\nBBBB BBBB\nCCCC CCCC\nDDXD DDDD\nEEEE EEEE\nFXFF RRRR"
cleanString = [line for line in stringRemoval.split('\n') if 'X' not in line]