【问题标题】:Python " for...in" nested loop doesn't work as expected [duplicate]Python“ for...in”嵌套循环无法按预期工作[重复]
【发布时间】:2025-12-14 12:55:01
【问题描述】:

我想在 Python 上做嵌套循环,但最外面的循环不会迭代 我的代码

file1 = open(textFile1.txt)
file2 = open(textFile2.txt)
for line1 in file1:
    for line2 in file2:
        print line1

它只打印line1 的第一行,不会遍历file1

你能指出我的错误吗? 我想要做的是匹配 line1line2 使用

if re.search(line1, line2):

所以我确实需要最外层的循环。 您还建议什么其他解决方案?

编辑: 文件1的内容

hello
bello

file2 的内容

hello world
bello world
hello yellow
bello yellow
bellow yellow

我想 grep file2 中包含 file1 中单词的任何行

【问题讨论】:

  • 嗨,简,你必须向我们展示 file1file2 是什么。
  • 也许你想要zip(file1, file2)
  • 你是打开同一个文本文件两次还是打错了?
  • 如果你想运行你的循环,你可以将你的文件读入列表( l1 = [ a for a in f1] )
  • 您的大问题是您需要分别遍历每个文件,但您在这里使用嵌套的for 循环,因此内部循环(line2)必须在读取下一个@987654334 之前完成@。另外,您是否正在检查file1 中的第一行是否与file2 中的第一行匹配,每个文件中的第二行是否匹配等等,还是这是多对一比较? line1 是模式,line2 将匹配如果模式在其中的任何位置。这是您要查找的内容,还是完全匹配检查,还是???这个描述没有提供足够的细节让我们确定你的意图。

标签: python


【解决方案1】:

打开的文件充当迭代器。一旦你迭代了一次,即在第一次运行外循环之后,它就被耗尽了。

相反,您可以重新打开文件,将其内容缓存在列表中,或使用file2.seek(0) 重置位置。

【讨论】: