gpt4 book ai didi

python逐行同时分析两个大文件

转载 作者:太空宇宙 更新时间:2023-11-03 13:17:52 26 4
gpt4 key购买 nike

我正在尝试分析两个 ±6 GB 的文件。我需要同时分析它们,因为我同时需要两行(每个文件一条)。我试图做这样的事情:

with open(fileOne, "r") as First_file:
for index, line in enumerate(First_file):

# Do some stuff here

with open(fileTwo, "r") as Second_file:
for index, line in enumerate(Second_file):

# Do stuff here aswell

问题在于第二个“with open”循环从文件开头开始。所以做分析的时间会很长。我也试过这个:

with open(fileOne, "r") as f1, open(fileTwo, "r") as f2:
for index, (line_R1, line_R2) in enumerate(zip(f1, f2)):

问题是两个文件都直接加载到内存中。我需要每个文件中的同一行。正确的行是:

number_line%4 == 1

这将给出第 2、5、9、13 行等。我需要这两个文件中的那些行。

有没有更快的方法和更节省内存的方法来做到这一点?

最佳答案

在 Python 2 中,使用 itertools.izip()防止文件被加载到内存中:

from itertools import izip

with open(fileOne, "r") as f1, open(fileTwo, "r") as f2:
for index, (line_R1, line_R2) in enumerate(izip(f1, f2)):

内置的 zip() 函数确实会将两个文件对象全部读入内存,izip() 一次检索一行。

关于python逐行同时分析两个大文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23655106/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com