python-problem-大文件的读取
来源:互联网 发布:网络调查的原则 编辑:程序博客网 时间:2024/05/21 09:04
python读取大文件
一.问题
博主在使用glove840b词向量的时候,遇到的一些坑。这个词向量大概有5.25个G容量,并且我需要按照行来进行处理。然后我直接用了
f = open(path,encoding="utf-8").readlines()
然后内存就炸了。我可是16G的内存呢。
二.对比几种读文件的方法
1.with
with open(path, encoding="utf-8") as f: for line in f: dosomething()
只占用4.6M内存
注意这种方法每一行最后会有一个’\n’
There should be one – and preferably only one – obvious way to do it.
2.直接遍历
f = open(path, encoding="utf-8")for line in f: dosomething()
只占用4.6M内存
注意这种方法每一行最后会有一个’\n’
这里我想说用with
和直接每次读一行进行遍历,实际上是一样的效果的。只是with
有一些好处,我打算下一章专门写一下with
。先举个列子,用with
,就不用在读文件结束的时候写f.close()
了。
3.使用readlines()
f = open(path, encoding="utf-8").readlines()for line in f: dosomething()
这种方法会把整个文件一次性加载在内存中,对于小文件来说,处理起来,速度会更快。
但是加载5.25的G的文本的时候,内存直接就爆满了。
4.使用yield配合readline
三.总结
尽量使用with的方法吧。
但是如果文章真的不是很大的话,或者内存足够大的话,还是用readlines比较好,速度能够提升好多。可以具体比较一下。
参考
https://stackoverflow.com/questions/8009882/how-to-read-large-file-line-by-line-in-python
阅读全文
0 0
- python-problem-大文件的读取
- python读取大文件
- Python 读取大文件
- python读取大文件
- Python 读取大文件
- Python 大文件读取
- Python读取大文件的行数
- 关于python读取大文件的方法
- ##python读取大文件的机制
- Python读取大容量的csv文件
- 使用python读取大文件
- Python读取大文件(GB)
- 使用python读取大文件
- Python读取大文件(GB)
- python中读取大文件
- 强悍的 Python —— 读取大文件
- Python读取大文件的最后N行
- 强悍的 Python —— 读取大文件
- 外网连接内网的centos mysql数据库
- 修改数据库的编码格式
- 20170921前端第三天
- JVM-JvisualVM部署及Tomcat监控实例(基于客户端jdk1.8.0_144和服务端tomcat7.0.47)
- js计时器
- python-problem-大文件的读取
- 深入探讨 Java 类加载器
- 1011. A+B和C (15)
- 服务篇---zookeeper集群的部署及配置
- 集合-subList的缺陷
- Redis系列-3.字符串(String)结构
- 半稠密直接法
- JVM知识点总览
- 背景