Это называется оператором "содержит", оператором проверки членства .Это действительно не идет с вариантами;он просто проверяет, присутствует ли что-то в чем-то другом - но вы можете «нормализовать» эти «что-то», например, преобразовав оба в нижний регистр (или верхний регистр, или нормализованный Unicode регистр сложенный или все, что подходит для вашего конкретного применения) перед проверкой на предмет локализации.
Повторный поиск в файле, однако, крайне неэффективен.Вы хотите прочитать файл в память один раз:
# Normalize once, before looping
search_words = set([x.lower() for x in ['Day 3','day 3']])
with open('test-target.txt','r') as targetFile:
contents = targetFile.read()
for search_word in search_words:
if search_word in contents.lower():
print('yes')
else:
print('no')
... или, возможно, проверить строку за раз:
with open('test-target.txt','r') as targetFile:
for line in targetFile:
for search_word in search_words:
if search_word in line.lower():
print('yes')
break # maybe?
else:
print('no')
Это будет более надежным, потому что вы можете обрабатывать произвольнобольшие файлы, если каждая отдельная строка помещается в память.
Обратите внимание, как цикл for
может иметь ветвь else
, к.
В качестве улучшения удобства использования,напечатанное сообщение должно, вероятно, указывать, какое поисковое слово было или не было найдено в каждой итерации.