博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python如何打开一个大文件?
阅读量:5278 次
发布时间:2019-06-14

本文共 540 字,大约阅读时间需要 1 分钟。

1 with open('a.csv','r') as f: 2 #1 3     for i in f: 4         print(i) 5 #2 6     while True: 7         a = f.readline() 8         if not a: 9             break10 #311     f.readlines()

用with语句打开文件返回一个可以迭代的文件对象绑定在as后的变量f;

第一种:直接遍历文件对象,会自动使用IO缓存和内存管理,是一种很好的方法;

第二种:调用readline()方法,一次读取一行,也不会占用太大内存,但代码显得臃肿,而且,虽然readline()方法是用C实现的,但相比于1的直接操作文件对象,速度上并没有明显的提升;

第三种:调用readlines()方法,返回的是一个包含所有文件元素的列表,如果文件很大(1个G),那就很占用内存,所以大文件情况下,最不推荐这种方法。

综上:推荐第一种写法,即直接遍历文件对象。

另外,还可以用pandas提供的分块读取功能,下一篇详细介绍。

转载于:https://www.cnblogs.com/chaofan-/p/8819147.html

你可能感兴趣的文章
路飞学城Python-Day180
查看>>
操作系统实验报告五
查看>>
php 替换模板中的 PHP源码标签字符方法
查看>>
flask信号
查看>>
SQLAlchemy中scoped_session实现线程安全
查看>>
css在各浏览器中的兼容问题
查看>>
TEXTBOX的TextMode为MultiLine时,读取页面框体被撑大的解决方案!
查看>>
Performance comparison Raw device VS Ext2 VS Ext3 VS OCFS
查看>>
string[] 和 arraylist互转及问题解决
查看>>
Python os模块
查看>>
POJ 1226 Substrings
查看>>
HDU 3480 Division
查看>>
Jquery enter事件绑定
查看>>
UVALive 6529
查看>>
centos7 安装gitlab任意版本
查看>>
【黑金原创教程】【TimeQuest】【第一章】TimeQuest 静态时序分析模型的概念
查看>>
韦到头打印链表
查看>>
如何面对故障
查看>>
Objective-C的反射机制
查看>>
图书馆管理
查看>>