Python脚本删除除“以外的所有行”;“好话”;

Python脚本删除除“以外的所有行”;“好话”;,python,Python,我有一个相反的脚本,效果很好,但需要一个脚本,将删除所有行,除了有“好词”的行,这将是这个脚本的反面,对坏词很好。感谢您的帮助 bad_words = ['abc:', 'xyz:'] with open('poop.txt') as badfile, open('Clean.txt', 'w') as cleanfile: for line in badfile: clean = True for word in bad_words: if wo

我有一个相反的脚本,效果很好,但需要一个脚本,将删除所有行,除了有“好词”的行,这将是这个脚本的反面,对坏词很好。感谢您的帮助

bad_words = ['abc:', 'xyz:']  
with open('poop.txt') as badfile, open('Clean.txt', 'w') as cleanfile:
    for line in badfile:
      clean = True
    for word in bad_words:
        if word in line:
            clean = False
    if clean == True:
        cleanfile.write(line)

为了只写不好的单词,您需要反转决定是否写的条件。将
True
更改为
False

bad_words = ['abc:', 'xyz:']  
with open('poop.txt') as badfile, open('Clean.txt', 'w') as cleanfile:
    for line in badfile:
      clean = True
      for word in bad_words:
          if word in line:
              clean = False
      if clean == False:
          cleanfile.write(line)

这也可以通过使用
not
运算符来表示。因此,您可以编写
if not clean:

使用for语句缩进另一个if,并反转最后一个if

bad_words = ['abc:', 'xyz:']  
with open('poop.txt') as badfile, open('Clean.txt', 'w') as cleanfile:
    for line in badfile:
      clean = True
      for word in bad_words:
          if word in line:
              clean = False
      if not clean == True:
          cleanfile.write(line)

哟,只需交换干净的布尔值…非常感谢。