Это потому, что в вашем примере name
является кортежем, а name in line
попытается проверить, находится ли кортеж внутри строки типа string.Вы можете перебирать любое слово, которое хотите проверить, как это
name = ('Foo', 'Bar', 'python')
searchfile = open("test.txt","r")
for num_lines, line in enumerate(searchfile, 1):
for word in names:
if word.lower() in line.lower():
print("Found on Line:", num_lines, line)
Кроме того, если вы хотите иметь несколько «имен», как вы сказали, вы можете сделать:
name = ("foo","bar","python")
name1 = ("foo1","bar1","python1")
name2 = ("foo2","bar2","python2")
names = name + name1 + name2
Иитерация for word in names
как и раньше.Я не знаю, каковы ваши требования, но лучше создать
names = ("foo", "bar", "python", "foo1", "bar1", "python1", "foo2", "bar2", "python2")
как один кортеж вместо N кортежей.