Python-从列表中的值搜索文件
我对Python非常陌生,我正在尝试解决以下问题。我想用单词迭代列表并在文件中查找,如果找到,请返回找到单词的行号Python-从列表中的值搜索文件,python,python-3.x,list,filesystems,python-3.6,Python,Python 3.x,List,Filesystems,Python 3.6,我对Python非常陌生,我正在尝试解决以下问题。我想用单词迭代列表并在文件中查找,如果找到,请返回找到单词的行号 files = glob.iglob(os.path.join(in_dir, '*.*')) List = ['word1', 'word2',...'wordn'] for index, word in enumerate(List): print(index, word) for item in files: # Iterate all files in
files = glob.iglob(os.path.join(in_dir, '*.*'))
List = ['word1', 'word2',...'wordn']
for index, word in enumerate(List):
print(index, word)
for item in files: # Iterate all files in Input directory
filename = os.path.basename(item) # Copy the filename without the path
print('file: {0}'.format(filename))
with open(item, 'r') as f:
for num, line in enumerate(f, 0):
if word in line:
print('num: {0}, line: {1}'.format(num, line))
但它似乎不起作用,它只搜索了列表中的第一个值。我要做的是搜索每个文件中的所有列表值。我认为您的问题在于iglob返回一个生成器。它是一个一次性迭代器,get在第一个“for item in files”循环中使用。您需要用glob替换iglob(返回一个列表而不是一次性使用的迭代器),或者为每个循环重新调用iglob 了解有关发电机的更多信息: