Python读大数据txt
如果直接对大文件对象调用 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爬虫之抓取百度贴吧并存储到本地txt文件改进版
百度贴吧的爬虫制作和糗百的爬虫制作原理基本相同,都是通过查看源码扣出关键数据,然后将其存储到本地txt文件. 项目内容: 用Python写的百度贴吧的网络爬虫. 使用方法: 新建一个BugBaidu.py文件,然后将代码复制到里面后,双击运行. 程序功能: 将贴吧中楼主发布的内容打包txt存储到本地. 原理解释: 首先,先浏览一下某一条贴吧,点击只看楼主并点击第二页之后url发生了一点变化,变成了: http://tieba.baidu.com/p/2296712428?see_lz=1&pn=
-
Python中使用不同编码读写txt文件详解
复制代码 代码如下: import os import codecs filenames=os.listdir(os.getcwd()) out=file("name.txt","w") for filename in filenames: out.write(filename.decode("gb2312").encode("utf-8")) out.close() 将执行文件的当前目录及文件名写入到name.txt文件中
-
Python实现将目录中TXT合并成一个大TXT文件的方法
本文实例讲述了Python实现将目录中TXT合并成一个大TXT文件的方法.分享给大家供大家参考.具体如下: 在网上下了一个dota的英雄攻略,TXT格式,每个英雄一个文件,看得疼,就写了一个小东西,合并一下. #coding=gbk import os import sys import glob def dirTxtToLargeTxt(dir,outputFileName): '''从dir目录下读入所有的TXT文件,将它们写到outputFileName里去''' #如果dir不是目录返回
-
在Python下使用Txt2Html实现网页过滤代理的教程
在撰写本 developerWorks 系列文章的过程中,我曾遇到过以最佳格式进行撰写的问题.文字处理程序格式都是专用的,在格式之间转换总不能尽如人意,也很麻烦(而且每种格式都会各自将文档绑定到不同的专用工具,这种情况又与开放源码的精神相违背).HTML 还算中立 -- 也许您现在阅读的文章正是这种格式 -- 但它也添加了标记,而这些标记很容易引起误输入(或者使人束缚于 HTML 增强型编辑器).DocBook 是一种有趣的 XML 格式,它可以转换成许多目标格式,并且它拥有技术文章(或书籍)的
-
用python分割TXT文件成4K的TXT文件
复制代码 代码如下: ########################## # # # 为了避免截断中文字符 # # 文件要求是 unicode 编码 # # txt文件另存为对话框下面有下拉框,可选存 # # 储编码格式 # # # ########################## import os import struct filename = str(raw_input("Please enter an old file name: ")) filenamepre = s
-
python读取TXT到数组及列表去重后按原来顺序排序的方法
本文实例讲述了python读取TXT到数组及列表去重后按原来顺序排序的方法.分享给大家供大家参考.具体如下: #################################################################### # python 读取TXT到数组 列表去重,不打乱原来的顺序 # 刚学写的不好请大家见谅 #################################################################### def open_tx
-
Python导入txt数据到mysql的方法
本文实例讲述了Python导入txt数据到mysql的方法.分享给大家供大家参考.具体分析如下: 从TXT文本转换数据到MYSQL数据库,接触一段时间python了 第一次写东西 用的是Python2.7 #!/usr/bin/python #coding=utf-8 import _mysql,sys,io def addCity(prov,city,tel,post): try: conn=_mysql.connect("192.168.1.99",'php','php'); co
-
Python实现读取目录所有文件的文件名并保存到txt文件代码
代码: (使用os.listdir) 复制代码 代码如下: import os def ListFilesToTxt(dir,file,wildcard,recursion): exts = wildcard.split(" ") files = os.listdir(dir) for name in files: fullname=os.path.join(dir,name) if(os.path.isdir(fullname)
-
Python读写txt文本文件的操作方法全解析
一.文件的打开和创建 >>> f = open('/tmp/test.txt') >>> f.read() 'hello python!\nhello world!\n' >>> f <open file '/tmp/test.txt', mode 'r' at 0x7fb2255efc00> 二.文件的读取 步骤:打开 -- 读取 -- 关闭 >>> f = open('/tmp/test.txt') >>&
-
Python读大数据txt
如果直接对大文件对象调用 read() 方法,会导致不可预测的内存占用.好的方法是利用固定长度的缓冲区来不断读取文件内容.即通过yield. 在用Python读一个两个多G的txt文本时,天真的直接用readlines方法,结果一运行内存就崩了. 还好同事点拨了下,用yield方法,测试了下果然毫无压力.咎其原因,原来是readlines是把文本内容全部放于内存中,而yield则是类似于生成器. 代码如下: def open_txt(file_name): with open(file_name
-
Python如何处理大数据?3个技巧效率提升攻略(推荐)
如果你有个5.6 G 大小的文件,想把文件内容读出来做一些处理然后存到另外的文件去,你会使用什么进行处理呢?不用在线等,给几个错误示范:有人用multiprocessing 处理,但是效率非常低.于是,有人用python处理大文件还是会存在效率上的问题.因为效率只是和预期的时间有关,不会报错,报错代表程序本身出现问题了~ 所以,为什么用python处理大文件总有效率问题? 如果工作需要,立刻处理一个大文件,你需要注意两点: 01.大型文件的读取效率 面对100w行的大型数据,经过测试各种文件读取
-
Python实现大数据收集至excel的思路详解
一.在工程目录中新建一个excel文件 二.使用python脚本程序将目标excel文件中的列头写入,本文省略该部分的code展示,可自行网上查询 三.以下code内容为:实现从接口获取到的数据值写入excel的整体步骤 1.整体思路: (1).根据每日调取接口的日期来作为excel文件中:列名为"收集日期"的值 (2).程序默认是每天会定时调取接口并获取接口的返回值并写入excel中(我使用的定时任务是:linux下的contab) (3).针对接口异常未正确返回数据时,使用特殊符号
-
读大数据量的XML文件的读取问题
而如果使用XMLReader的话,不需要缓存,读取速度很快,但是如果要查询就不那么方便了,不支持XPath,只能通过Reader()方法前向循环.为了避免以上两种方法的缺点,想出以下方案: 1.先使用XMLReader将XML文件的内容读取到一个链表中. 2.查询的时候查询链表就可以了(可以在定义链表的类中定义查询函数,要查询的时候直接调用函数就可以了,非常方便). 结果证明:速度和查询效果都很好.
-
为什么入门大数据选择Python而不是Java?
马云说:"未来最大的资源就是数据,不参与大数据十年后一定会后悔."毕竟出自wuli马大大之口,今年二月份我开始了学习大数据的道路,直到现在对大数据的学习脉络和方法也渐渐清晰.今天我们就来谈谈学习大数据入门语言的选择.当然并不只是我个人之见,此外我搜集了各路大神的见解综合起来跟大家做个讨论. java和python的区别到底在哪里? 官方解释:Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承.指针等概念,因此Java语言具有功能强大和简单易
-
python 读txt文件,按‘,’分割每行数据操作
按行读取TXT文件 fname = './新建文件夹/yob2010.txt' //文件夹路径 with open(fname,'r+',encoding='utf-8') as f: for line in f.readlines(): //按行读取每行 print(line[:-1].split(',')) //切片去掉换行符,再以','分割字符串 ,得到一个列表 s = [i[:-1].split(',') for i in f.readlines()] //列表生成器,将文件每行数据按上
-
python pickle存储、读取大数据量列表、字典数据的方法
先给大家介绍下python pickle存储.读取大数据量列表.字典的数据 针对于数据量比较大的列表.字典,可以采用将其加工为数据包来调用,减小文件大小 #列表 #存储 list1 = [123,'xiaopingguo',54,[90,78]] list_file = open('list1.pickle','wb') pickle.dump(list1,list_file) list_file.close() #读取 list_file = open('list1.pickle','rb')
-
python实现读Excel写入.txt的方法
因为今天要用到把Excel中的数据写入到.txt文件中,所以简单的写了个代码: import numpy as np import xlrd #打开excel文件 data= xlrd.open_workbook('./sudata/ng.xls')#打开Excel文件读取数据 sh=data.sheet_by_name("Sheet1")##通过工作簿名称获取 print sh.nrows#行数 5820 print sh.ncols#列数 2 n=0 i=0 file=open(&
-
Python大数据之从网页上爬取数据的方法详解
本文实例讲述了Python大数据之从网页上爬取数据的方法.分享给大家供大家参考,具体如下: myspider.py : #!/usr/bin/python # -*- coding:utf-8 -*- from scrapy.spiders import Spider from lxml import etree from jredu.items import JreduItem class JreduSpider(Spider): name = 'tt' #爬虫的名字,必须的,唯一的 all
-
在Python中利用Pandas库处理大数据的简单介绍
在数据分析领域,最热门的莫过于Python和R语言,此前有一篇文章<别老扯什么Hadoop了,你的数据根本不够大>指出:只有在超过5TB数据量的规模下,Hadoop才是一个合理的技术选择.这次拿到近亿条日志数据,千万级数据已经是关系型数据库的查询分析瓶颈,之前使用过Hadoop对大量文本进行分类,这次决定采用Python来处理数据: 硬件环境 CPU:3.5 GHz Intel Core i7 内存:32 GB HDDR 3 1600 MHz 硬
随机推荐
- JavaScript RegExp方法获取地址栏参数(面向对象)
- 微信小程序 开发之快递查询功能的实现
- opensips源代码安装与配置的技巧方法
- IIS7传大于30M的视频时出现找不到文件或目录错误正确处理方法
- Javascript 定时器调用传递参数的方法
- php中inlcude()性能对比详解
- mysql limit查询优化分析
- Python处理XML格式数据的方法详解
- C#实现将HTML转换成纯文本的方法
- C#语句先后顺序对程序的结果有影响吗
- Android HTTP发送请求和接收响应的实例代码
- node.js 抓取代理ip实例代码
- Android自动编辑文本框(AutoCompleteTextView)使用方法详解
- 人生的高境界 - 无所谓
- jQuery插件HighCharts绘制2D带Label的折线图效果示例【附demo源码下载】
- Sql Server2005实现远程备份数据库
- BootStrap中<li role=
- WINDOWS系统下怎样配置squid做CDN的简明图解
- Android使用Notification实现宽视图通知栏(二)
- C#实现随机数产生类实例