Python中读取大文件的简单方法?

我有一个很大的文件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中读取大文件的简单方法? 的全部内容, 来源链接: utcz.com/qa/430171.html

回到顶部