我有一段简单的 python 代码可以打开两个文件,并循环遍历一个文件中的每个字符串,在另一个文件中查找匹配的字符串(或其中的一部分)。如果找到它,它应该将该行写入文件。由于某种原因,它没有迭代。这是我的代码:
out = open("outputfile.txt", "w")
with open("inputfile1.txt", "r") as f:
with open("inputfle2.txt", "r") as map:
for line in f:
for mline in map:
if line[0:6] in mline:
out.write(line)
由于某种原因,生成的输出文件仅包含一行。我已经检查了该行并且它是正确的,所以代码正在执行我想要的操作但是由于某种原因循环没有遍历这两个文件。我知道有一个明显的解决方案,但数小时的搜索和摆弄我的代码没有产生任何结果。
最佳答案
当 line
到达文件 f
的第二行时,mline
已经读取了 map 的所有行
并耗尽了发电机。
您需要缓存 map
的内容:
out = open("outputfile.txt", "w")
with open("inputfle2.txt", "r") as map:
map_lines = map.readlines()
with open("inputfile1.txt", "r") as f:
for line in f:
for mline in map_lines:
if line[0:6] in mline:
out.write(line)
关于Python:为什么我的循环不迭代?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37048842/