今天直接面对了一个很严重的问题,生成的一个大的字典,如何打开成了一个问题,因此发觉了一下这个问题:
基本原理:通过不断取1024KB为大小的内容,然后通过迭代器yield这个设备读取无限大的内容。
#coding=utf-8
import os.path
import time
'''
切分成小文件,然后读取
'''
def read_in_block(filepath):
BLOCK_SIZE = 1024
with open(filepath,'r') as f:
while True:
block = f.read(BLOCK_SIZE)
if block:
yield block
else:
return
if __name__ == '__main__':
path=os.getcwd()
filepath = path + '\pass.txt'
start_time = time.time()
for i in read_in_block(filepath):
print i
end_time = time.time()
print 'Time is ',end_time - start_time