Python读大数据txt


Posted in Python onMarch 28, 2016

如果直接对大文件对象调用 read() 方法,会导致不可预测的内存占用。好的方法是利用固定长度的缓冲区来不断读取文件内容。即通过yield。

    在用Python读一个两个多G的txt文本时,天真的直接用readlines方法,结果一运行内存就崩了。

    还好同事点拨了下,用yield方法,测试了下果然毫无压力。咎其原因,原来是readlines是把文本内容全部放于内存中,而yield则是类似于生成器。

代码如下:

def open_txt(file_name):
  with open(file_name,'r+') as f:
    while True:
      line = f.readline()
      if not line:
        return
      yield line.strip()

调用实例:

for text in open_txt('aa.txt'):
  print text

例二:

目标 txt 文件大概有6G,想取出前面1000条数据保存于一个新的 txt 文件中做余下的操作,虽然不知道这样做有没有必要但还是先小数据量测试一下吧。参考这个帖子:我想把一个list列表保存到一个Txt文档,该怎么保存 ,自己写了一个简单的小程序。
====================================================

import datetime
import pickle

start = datetime.datetime.now()
print "start--%s" % (start)

fileHandle = open ( 'train.txt' )
file2 = open('s_train.txt','w') 

i = 1
while ( i < 10000 ):
  a = fileHandle.readline()
  file2.write(''.join(a)) 
  i = i + 1

fileHandle.close() 
file2.close()

print "done--%s" % ( datetime.datetime.now() - start)

if __name__ == '__main__':
  pass

====================================================
pickle 这个库大家说的很多,官网看看,后面可以好好学习一下。

Python 相关文章推荐
Python中扩展包的安装方法详解
Jun 14 Python
Python 中pandas.read_excel详细介绍
Jun 23 Python
Python continue继续循环用法总结
Jun 10 Python
python自动发邮件总结及实例说明【推荐】
May 31 Python
Python Web框架之Django框架Form组件用法详解
Aug 16 Python
Pytorch 抽取vgg各层并进行定制化处理的方法
Aug 20 Python
Python 操作mysql数据库查询之fetchone(), fetchmany(), fetchall()用法示例
Oct 17 Python
pytorch: Parameter 的数据结构实例
Dec 31 Python
TensorFlow 读取CSV数据的实例
Feb 05 Python
Python flask路由间传递变量实例详解
Jun 03 Python
Python-OpenCV实现图像缺陷检测的实例
Jun 11 Python
基于Python实现股票收益率分析
Apr 02 Python
Python常用的爬虫技巧总结
Mar 28 #Python
Python对数据库操作
Mar 28 #Python
Python字符串切片操作知识详解
Mar 28 #Python
python Django框架实现自定义表单提交
Mar 25 #Python
python Django批量导入数据
Mar 25 #Python
python Django批量导入不重复数据
Mar 25 #Python
用Python实现斐波那契(Fibonacci)函数
Mar 25 #Python
You might like
基于mysql的bbs设计(三)
2006/10/09 PHP
10个php函数实用却不常见
2015/10/13 PHP
ThinkPHP 模板引擎使用详解
2017/05/07 PHP
使用Chrome浏览器调试AngularJS应用的方法
2015/06/18 Javascript
javascript伸缩型菜单实现代码
2015/11/16 Javascript
学习JavaScript设计模式(策略模式)
2015/11/26 Javascript
javascript从定义到执行 你不知道的那些事
2016/01/04 Javascript
AngularJS转换响应内容
2016/01/27 Javascript
Angular2从搭建环境到开发步骤详解
2016/10/17 Javascript
web 屏蔽BackSpace键实例代码
2016/12/24 Javascript
详解javascript表单的Ajax提交插件的使用
2016/12/29 Javascript
JS库之Highlight.js的用法详解
2017/09/13 Javascript
vue 每次渲染完页面后div的滚动条保持在最底部的方法
2018/03/17 Javascript
vue-swiper的使用教程
2018/08/30 Javascript
js实现一个页面多个倒计时的3种方法
2019/02/25 Javascript
Vue实现input宽度随文字长度自适应操作
2020/07/29 Javascript
如何用JS模拟实现数组的map方法
2020/07/30 Javascript
[04:20]DOTA2-DPC中国联赛 正赛 VG vs LBZS 选手采访 1月19日
2021/03/11 DOTA
[05:23]DOTA2-DPC中国联赛2月1日Recap集锦
2021/03/11 DOTA
Python3利用SMTP协议发送E-mail电子邮件的方法
2017/09/30 Python
python计算列表内各元素的个数实例
2018/06/29 Python
python自动循环定时开关机(非重启)测试
2019/08/26 Python
pycharm内无法import已安装的模块问题解决
2020/02/12 Python
用python监控服务器的cpu,磁盘空间,内存,超过邮件报警
2021/01/29 Python
String这个类型的class为何定义成final?
2012/11/13 面试题
入党思想汇报
2014/01/05 职场文书
函授大学生自我鉴定
2014/02/05 职场文书
党的群众路线教育学习材料
2014/05/12 职场文书
服装发布会策划方案
2014/05/22 职场文书
酒店节能减排方案
2014/05/26 职场文书
环境保护建议书
2014/08/26 职场文书
赵乐秦在党的群众路线教育实践活动总结大会上的讲话稿
2014/10/25 职场文书
2015年学生会部门工作总结
2015/04/21 职场文书
忠诚教育学习心得体会
2016/01/23 职场文书
React实现动效弹窗组件
2021/06/21 Javascript