gpt4 book ai didi

python - 在 Python 中读取大文件的惰性方法?

转载 作者:行者123 更新时间:2023-12-05 07:23:35 25 4
gpt4 key购买 nike

我有一个 4GB 的大文件,当我尝试读取它时,我的计算机挂起了。所以我想一段一段地阅读它,并在处理完每一段后将处理过的段存储到另一个文件中并读取下一段。

有什么方法可以yield这些碎片吗?

我希望有一个惰性方法

最佳答案

要编写惰性函数,只需使用 yield :

def read_in_chunks(file_object, chunk_size=1024):
"""Lazy function (generator) to read a file piece by piece.
Default chunk size: 1k."""
while True:
data = file_object.read(chunk_size)
if not data:
break
yield data


with open('really_big_file.dat') as f:
for piece in read_in_chunks(f):
process_data(piece)

另一种选择是使用 iter和一个辅助函数:

f = open('really_big_file.dat')
def read1k():
return f.read(1024)

for piece in iter(read1k, ''):
process_data(piece)

如果文件是基于行的,则文件对象已经是行的惰性生成器:

for line in open('really_big_file.dat'):
process_data(line)

关于python - 在 Python 中读取大文件的惰性方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55900514/

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