您的代码试图再次读取整个文件(在list(myfile)[0]),而已经有一个迭代器在遍历它。这很麻烦。在
最好存储前5行代码(这就是你要问的,是吗?)在变量中,然后在条件匹配时打印它们。在
另外,您正在打印string1两次。在
将循环更改为:from collections import defaultdict
filenames2fuzz = defaultdict(list)
for dir_entry in os.listdir(path):
dir_entry_path = os.path.join(path, dir_entry)
if os.path.isfile(dir_entry_path):
first5lines = []
condition_matched_in_file = False
with open(dir_entry_path, 'r') as my_file:
for line_nbr, line in enumerate(my_file):
if line_nbr < 5:
first5lines.append(line)
for part in line.split():
if "color=" in part:
print part
string1= "Filename:", dir_entry_path
print(string1)
condition_matched_in_file = True
fuzziness = fuzz.ratio(string1, first5lines[0])