大文件读取 python yield
def read_file(fpath):
BLOCK_SIZE = 1024
with open(fpath, 'rb') as f:
print(f)
while True:
block = f.read(BLOCK_SIZE)
if block:
yield block
else:
return
a = read_file('E:\odoo14\odoo\dlfs_addons.rar')
print(a)
print(next(a))
print(next(a))
print(next(a))
print(next(a))
print(next(a))

### 将文件使用 yield 生成一个可迭代的 generator 对象,然后不停迭代,传输文件流,此操作不会造成超大文件的读取后内存崩溃。