如何从Julia中的两个文件中一次读取一行?

如何从Julia中的两个文件中一次读取一行?,julia,gzip,large-data,Julia,Gzip,Large Data,我在茱莉亚1.4工作。我想打开两个大的gzip文件(file1.gz和file2.gz),然后从文件1中读取第一行,从文件2中读取第一行,处理这些文件,然后转到每个文件的第二行,等等。 如果我为循环嵌套了两个,这显然不起作用,因为它会在进入下一行file1之前在file2中循环。文件是两个大文件,可以同时打开 handle1 = GZip.open(file1.gz) handle2 = GZip.open(file2.gz) for line1 in eachline(handle

我在茱莉亚1.4工作。我想打开两个大的gzip文件(file1.gz和file2.gz),然后从文件1中读取第一行,从文件2中读取第一行,处理这些文件,然后转到每个文件的第二行,等等。 如果我为循环嵌套了两个,这显然不起作用,因为它会在进入下一行file1之前在file2中循环。文件是两个大文件,可以同时打开

   handle1 = GZip.open(file1.gz)
   handle2 = GZip.open(file2.gz)
for line1 in eachline(handle1)
for line2 in eachline(handle2)
println(line1,line2)
end
end

有简单的解决方案吗?

是的,您可以使用
zip
。您也可以自己管理
eachline
迭代器,但使用
zip
更容易:

handle1 = GZip.open(file1.gz)
handle2 = GZip.open(file2.gz)

for (line1, line2) in zip(eachline(handle1), eachline(handle2))
    println(line1,line2)
end

close(handle1)
close(handle2)
别忘了关闭你的文件

另外,请注意,如果两个文件的行数不同,则当两个文件中的第一个文件用完时,
zip
迭代器将停止