我用Python 2.6版和Python 3.2版处理数据。数据比较大,是写在一个.txt文件里。
我用Python处理这个.txt文件,我发现一个问题,我的Python只能处理前14500行!
比如我用shutil.copyfile把这个.txt文件拷贝到另外一个地方,我发现新文件只复制了原文件的前14568行。
比如我用f_in.read().splitlines()读取这个.txt文件,我发现只能读到原文件的前14492行。
是Python不能处理特别大的文件么?
谢谢!
文件大的时候可以用read([size])
指定大小,然后联系读取。
尝试配合使用yield
和read([size])
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
f = open('really_big_file.dat')
for piece in read_in_chunks(f):
process_data(piece)
http://stackoverflow.com/questions/519633/lazy-method-for-reading-big-...