python读取较大数据文件
常用方式一:
with open('file_name') as file:
for line in file:
do_things(line)
上述方式不会一次性读取整个文件,类似buffer机制。
对可迭代对象 f,进行迭代遍历:for line in f,会自动地使用缓冲IO(buffered IO)以及内存管理。
方式二:
自己实现类似于buffer:
def readChunks(file, chunkSize = 4096):
while 1:
data = file.read(chunkSize)
if not data:
break
yield data
f = open('file')
for chunck in readChunks(s):
do_thing(chunk)
f.close()
==不适合的方法==
-
read方法
对于文件会一次性读取,可能造成内存错误 MemoryError
-
使用readline(), readlines(), read(chunckSize)的方法称为转换接口
readline()方法一次读取一行文件;
readlines()方法一次性读取完,然后转换成list存储内存;
read(chunckSize)方法(重载)读取指定长度;