julia - 如何从 Julia 的两个文件中一次读取一行?
问题描述
我在 Julia 1.4 中工作。我想打开两个大的 gzip 文件(file1.gz 和 file2.gz),然后从文件 1 中读取第一行,从文件 2 中读取第一行,对这些文件执行一些操作,然后转到每个文件的第二行文件等。如果我嵌套两个for循环,这显然不起作用,因为它在移动到 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
迭代器将在两个文件中的第一个文件用完时停止。
推荐阅读
- sass - 如何使 YouTube 缩略图图像纵横比为 21:9
- ios - 标签栏控制器中的图像和标题与 iPhone X 重叠?
- android - 屏幕锁定时Android线程执行减慢
- typescript - 在 VSCode 中自动导入 Typescript 子模块而不是父模块
- java - Android应用程序在单击按钮时崩溃
- eclipse - 检查最近的 -SNAPSHOT 父级
- javascript - 在 Quill js 编辑器中模拟文档页面
- java - Spring Boot:PUT 不更新 ManyToOne 字段,但所有其他字段
- kotlin - 协程的类强制转换异常
- pandas - Python pandas:计算所有列的统计范围。