文件太大,内存不足时的读取问题

摘要:
需要考虑的问题都有哪些?分批每次读入数据的大小,太小就会在读取操作上花费过多时间。
#

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

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

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

1. defget_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 的文件,需要分批读入。分批读入数据要记录每次读入数据的位
置。分批每次读入数据的大小,太小就会在读取操作上花费过多时间。

免责声明:文章转载自《文件太大,内存不足时的读取问题》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇梦断代码阅读笔记一C++——std::vector相关 (转)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

ES开启慢查询日志

10s#超过10秒的查询将生成警告日志index.search.slowlog.threshold.query.info:5s#超过5秒的查询会生成信息日志index.search.slowlog.tthreshold.query.debug:...

svn常见问题汇总

要添加到版本库,必须更新工作副本中的文件。5.更新时,系统会提示您文件冲突,将工作副本中的文件与服务器中的文件进行比较“当版本管理系统更改计算机上的工作副本时”,它会尝试将您的意图写入计算机上的日志文件,因此日志文件记录可能与您的上次工作状态不一致。Subversion客户端将在提交内容之前在本地工作副本中写入日志。首先删除隐藏文件夹中tmp下的临时文件。服...

Github仓库重命名

1.在Github上重命名仓库,转到您自己的仓库,找到Setting标记,然后单击Options中的Settings以设置Repositoryname。2.修改本地仓库信息。由于远程仓库名称已更改,因此本地对应的仓库名称也应更改。1.检查当前远程仓库的信息$gitremote-v列出了所有远程仓库信息,包括网站地址。2.修改本地对应远程仓库的地址。修改后,使...

Maven settings.xml配置详解

让我们来谈谈设置。对于Maven,xml相当于全局配置,用于所有项目。maven2-xml中有两个设置,作为全局配置位于maven2的安装目录conf下。对于团队设置,一致的定义是关键,因此maven2/conf Xml下面的设置是团队的通用配置文件。当然,每个成员都需要特殊的用户定义设置,例如用户信息,其他设置也是如此。xml用作本地配置。默认位置为:${...

Linux(debian7)操作基础(四)之CPU频率调整 Linux系统CPU频率调整工具使用

在Linux中,内核的开发人员定义了一组框架模型,以实现动态调整CPU频率的目的,这就是CPUFreq系统。交互式:交互式模式,直接连接到最高频率,然后CPU负载缓慢降低,导致相对较高的功耗。Interactive根据计划的CPU数量来调整频率,以节省电力。InteractiveX根据CPU负载调整CPU频率,而不会过度降低频率。用户空间:用户定义的模式。该...

制作多合一安装U盘(Windows + Linux + macOS)精解

在此,我给大家讲解一下,如何制作多系统安装U盘。首先,本教程用到的工具如下:1.WinSetupFromUSB1.9下载链接:https://share.weiyun.com/5gtbB3y密码:vector2.分区助手专业版下载链接:http://www2.aomeisoftware.com/download/pacn/PAClean.zip3.各类Win...