zoukankan      html  css  js  c++  java
  • 文件太大,内存不足时的读取问题

    #

    现在考虑有一个 jsonline 格式的文件 file.txt 大小约为 10K,之前处理文件的
    代码如下所示:

    1. def get_lines():
    2.   l = []
    3.   with open(‘file.txt’,‘rb’) as f:
    4.     for eachline in f:
    5.       l.append(eachline)
    6.   return l
    7. if __name__ == ‘__main__’:
    8.   for e in get_lines():
    9.     process(e) #处理每一行数据
    #

    现在要处理一个大小为 10G 的文件,但是内存只有 4G,如果在只修改 get_lines 函数而其他代
    码保持不变的情况下,应该如何实现?需要考虑的问题都有哪些?


    1. def get_lines(): 2.   l = [] 3.   with open(‘file.txt’,’rb’) as f: 4.     data = f.readlines(60000) 5.   l.append(data) 6.   yield l

     说明 : 内存只有 4G 无法一次性读入 10G 的文件,需要分批读入。分批读入数据要记录每次读入数据的位
    置。分批每次读入数据的大小,太小就会在读取操作上花费过多时间。

  • 相关阅读:
    宝塔相关问题
    免费xshell下载
    服务器断电mysql无法恢复
    mysql相关知识
    svn
    tortoisesvn下载 和svn 安装
    nginx+lua乐观锁实现秒杀
    c# asp.net 生成唯一订单号
    c# 关闭软件 进程 杀死进程
    国内开源软件镜像地址搜集
  • 原文地址:https://www.cnblogs.com/gugubeng/p/9758841.html
Copyright © 2011-2022 走看看