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