#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 word in line:
clean = False
if clean == True:
cleanfile.write(line)
Комментарии:
1. эй, просто поменяйте местами свое чистое логическое значение…
Ответ №1:
Чтобы писать только плохие слова, вам нужно инвертировать условие, которое определяет, пишете вы или нет. Как и в случае изменения 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:
Ответ №2:
Сделайте отступ другого if с помощью оператора for и инвертируйте последний 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)