使用生成器 yield 逐行读取到内存
def read_file(filename):
with open(filename, 'r', encoding='utf-8') as f:
for line in f:
yield line
line_content = read_file(filename="/data.txt")
for line in line_content:
print line
def readInChunks(fileObj, chunkSize=4096):
"""
Lazy function to read a file piece by piece.
Default chunk size: 4kB.
"""
while 1:
data = fileObj.read(chunkSize)
if not data:
break
yield data
f = open('bigFile')
for chuck in readInChunks(f):
#do_something(chunk)
f.close()