Julia对文件中的行进行双重迭代

时间:2016-02-13 15:16:41

标签: file io julia

我一直在研究一段特定的代码,它同时从两个文件中读取并比较数据。有些东西:

for l1 in eachline (firstfile)
    for l2 in eachline (secondfile)

        if l1==l2
        println("match!");
        end
    end
end

然而,接下来发生的是>迭代仅对第一个文件的第一行和第二个文件中的所有行进行,但随后停止。因此,程序不会在下一个循环中使用第一行文件的第二行而不会出错。如果不使用以下代码片段,如何在Julia中完成此操作?

谢谢。

1 个答案:

答案 0 :(得分:3)

每个文件都有一个指向当前读取位置的指针。完全读取文件后,您需要将读取位置重置为文件的开头,以便重新读取。这就是下面代码中的额外seek行:

for l1 in eachline(firstfile)
    for l2 in eachline(secondfile)
        if l1==l2
            println("match!");
        end
    end
    ### ADD THE FOLLOWING LINE
    seek(secondfile,0)
end