内存只有 4G 无法一次性读入 10G 的文件,需要分批读入。分批读入数据要记录每次读入数据的位置。分批每次读入数据的大小,太小就会在读取操作上花费过多时间。
file_cover = request.FILES.get('name')
with open(path, 'wb') as file:
for chunk in file_cover.chunks(): # 把文件的大小分成快一次写入一点
file.write(chunk)
取得时候可以封装成一个生成器,每次都一部分
def get_lines():
l = []
with open(‘file.txt’,’rb’) as f:
data = f.readlines(60000)
l.append(data)
yield l