使用python读取大文件
来源:互联网 发布:sql语句美化小工具 编辑:程序博客网 时间:2024/05/18 00:56
Python中读取数据的时候有几种方法,无非是read,readline,readlings和xreadlines几种方法,在几种方法中,read和xreadlines可以作为迭代器使用,从而在读取大数据的时候比较有效果.
在这里使用循环判断文件的大小,如果大小在1GB左右,那么结束创建文件。--需要花费好几分钟的时间。
在测试中,先创建一个大文件,大概1GB左右,使用的程序如下:
- import os.path
- import time
- while os.path.getsize('messages') <1000000000:
- f = open('messages','a')
- f.write('this is a file/n')
- f.close()
- print 'file create complted'
在这里使用循环判断文件的大小,如果大小在1GB左右,那么结束创建文件。--需要花费好几分钟的时间。
测试代码如下:
- #22s
- start_time = time.time()
- f = open('messages','r')
- for i in f:
- end_time = time.time()
- print end_time - start_time
- break
- f.close()
- #22s
- start_time = time.time()
- f = open('messages','r')
- for i in f.xreadlines():
- end_time = time.time()
- print end_time - start_time
- break
- f.close()
- start_time = time.time()
- f = open('messages','r')
- k= f.readlines()
- f.close()
- end_time = time.time()
- print end_time - start_time
使用迭代器的时候,两者的时间是差不多的,内存消耗也不是很多,使用的时间大概在22秒作用
在使用完全读取文件的时候,使用的时间在40s,并且内存消耗相当严重,大概使用了1G的内存。。
其实,在使用跌倒器的时候,如果进行连续操作,进行print或者其他的操作,内存消耗还是不可避免的,但是内存在那个时候是可以释放的,从而使用迭代器可以节省内存,主要是可以释放。
而在使用直接读取所有数据的时候,数据会保留在内存中,是无法释放这个内存的,从而内存卡死也是有可能的。
在使用的时候,最好是直接使用for i in f的方式来使用,在读取的时候,f本身就是一个迭代器,其实也就是f.read方法
0 0
- 使用python读取大文件
- 使用python读取大文件
- python读取大文件
- Python 读取大文件
- python读取大文件
- Python 读取大文件
- Python 大文件读取
- Python读取大文件(GB)
- Python读取大文件(GB)
- python中读取大文件
- Python读取大文件的行数
- 关于python读取大文件的方法
- 用Python读取大文件(上)
- 用Python读取大文件(下)
- Python按行读取大文件
- ##python读取大文件的机制
- Python读取大容量的csv文件
- python-problem-大文件的读取
- 用PPT绘制示意图
- C++的运算符重载
- 最长上升子序列n log n
- SIGCHLD信号处理
- canvas
- 使用python读取大文件
- 转方阵
- 【 UITextField】- 文本框
- 二叉树遍历方式的转化(递归写法)
- PYTHON学习之路一:WEB开发
- python中range()函数的用法--转载
- [译]MVC or MVP Pattern – Whats the difference?
- 记一个JSON解析,客户端,服务端
- Mac版虚拟机怎么安装win7系统(详细教程)