Python:为什么我的循环迭代失败了?

时间:2016-05-05 10:58:39

标签: python loops

我有一些简单的python代码可以打开两个文件,并在一个文件中循环遍历每个字符串,在另一个文件中查找匹配的字符串(或其中的一部分)。如果找到它,它应该将该行写入文件。由于某种原因,它不会迭代。这是我的代码:

public Integer count(String columnName1, String valueName1, String columnName2, String valueName2) {
    Integer toReturn = 0;

    results.first();
    for(String column : map.keySet()) {
        for (RowResult result : results.getResults()) { 
            //I am stucked here with the if
        }   
    }   
    return toReturn;
}

由于某种原因,结果输出文件只包含一行。我已检查该行并且它是正确的,因此代码正在执行我想要的但是循环不会因某些原因迭代这两个文件。我知道有一个明显的解决方案,但是几个小时的搜索和摆弄我的代码并没有产生任何结果。

1 个答案:

答案 0 :(得分:4)

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)