使用python读取大文件
读取文件时,如果文件过大,则一次读取全部内容到内存,容易造成内存不足,所以要对大文件进行批量的读取内容。
python读取大文件通常两种方法:第一种是利用yield生成器读取;第二种是:利用open()自带方法生成迭代对象,这个是一行一行的读取。
1、利用yield生成器读取
示例代码:
# import random
# 生成模拟测试数据
# for i in range(100000):
# random_data = random.randint(1, 100)
# data = f"num:{i}, random_num: {random_data} \n"
# with open('data/big_data.txt', 'a', encoding='utf-8') as f:
# f.write(data)def read_big_file(file_path, size=1024, encoding='utf-8'):with open(file_path, 'r', encoding=encoding) as f:while True:part = f.read(size)if part:yield partelse:return Nonefile_path = 'data/big_data.txt'
size = 100 # 每次读取指定大小的内容到内存,为了测试更加明显,这儿写的小一些# 注意:以'a'追加模式下,大文件也不会占用太多内存
for part in read_big_file(file_path, size):with open('data/new_big_data.txt', 'a', encoding='utf-8') as w:w.write(part)print(part)print('*' * 100)
运行结果:
2、利用open()自带方法生成迭代对象
注意:这是一行一行的读取,在数据量比较大的时候效率是极低的。
示例代码:
# import random
# 生成模拟测试数据
# for i in range(100000):
# random_data = random.randint(1, 100)
# data = f"num:{i}, random_num: {random_data} \n"
# with open('data/big_data.txt', 'a', encoding='utf-8') as f:
# f.write(data)file_path = 'data/big_data.txt'
new_file_path = 'data/new_big_data.txt'
with open(file_path, 'r', encoding='utf-8') as f:for line in f:print(line)with open(new_file_path, 'a', encoding='utf-8') as a:a.write(line)
运行结果:
使用python读取大文件相关推荐
- python读取大文件-python如何读取大文件以及分析时的性能优化小技巧
在二代.三代测序背景下,分析人员难免会遇到解析超过1G.或者10G以上的文件.这里将给大家简单介绍下如何用python读取大文件,并给大家提两个优化代码的小建议. 首先,python 读取GB级大文件 ...
- python读取大文件-使用Python读取大文件的方法
背景 最近处理文本文档时(文件约2GB大小),出现memoryError错误和文件读取太慢的问题,后来找到了两种比较快Large File Reading 的方法,本文将介绍这两种读取方法. 准备工作 ...
- python读取大文件-强悍的Python读取大文件的解决方案
Python 环境下文件的读取问题,请参见拙文 Python基础之文件读取的讲解 这是一道著名的 Python 面试题,考察的问题是,Python 读取大文件和一般规模的文件时的区别,也即哪些接口不适 ...
- python读文件代码-简单了解Python读取大文件代码实例
这篇文章主要介绍了简单了解Python读取大文件代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 通常对于大文件读取及处理,不可能直接加载到内 ...
- PHP 与Python 读取大文件的区别
php读取大文件的方法 <?php function readFile($file) {# 打开文件$handle = fopen($file, 'rb');while (feof($handl ...
- python读取大文件性能_强悍的Python读取大文件的解决方案
Python 环境下文件的读取问题,请参见拙文 Python基础之文件读取的讲解 这是一道著名的 Python 面试题,考察的问题是,Python 读取大文件和一般规模的文件时的区别,也即哪些接口不适 ...
- python中0xff_强悍的Python读取大文件的解决方案
这是一道著名的 Python 面试题,考察的问题是,Python 读取大文件和一般规模的文件时的区别,也即哪些接口不适合读取大文件. 1. read() 接口的问题 f =open(filename, ...
- python读取超大文件-强悍的Python读取大文件的解决方案
Python 环境下文件的读取问题,请参见拙文 Python基础之文件读取的讲解 这是一道著名的 Python 面试题,考察的问题是,Python 读取大文件和一般规模的文件时的区别,也即哪些接口不适 ...
- python读取大文件的某行_python 大文件以行为单位读取方式比对
先前需要做一个使用python读取大文件(大于1G),并逐条存入内存进行处理的工作.做了很多的尝试,最终看到了如下的文章. 该文章实际上提供了集中读取大文件的方式,先经过测试总结如下 1. for l ...
- 强悍的 Python —— 读取大文件
Python 环境下文件的读取问题,请参见拙文 Python 基础 -- 文件 这是一道著名的 Python 面试题,考察的问题是,Python 读取大文件和一般规模的文件时的区别,也即哪些接口不适合 ...
最新文章
- 空扫描Idle Scanning
- 实例介绍Cocos2d-x开关菜单
- 深度学习:语义分割网络
- matlab实现定标旋转,Matlab摄像机标定工具箱的使用说明精编.doc
- android 3d渲染动画效果吗,Android如何实现3D效果
- python装饰器函数后执行_Python装饰器限制函数运行时间超时则退出执行
- python读取配置文件 ConfigParser
- Linux中的head命令
- 为什么合伙公司,一定要重视退出机制呢?
- 《C语言及程序设计》实践参考——输出小星星(全解)
- Python的并发并行[3] - 进程[1] - 多进程的基本使用
- sharepoint 2013 配件控制FileUpload如何检查是否图像的方法
- LinAlgError: SVD did not converge
- VS2005精简版(二)
- 男同胞要一定要看——酒桌上用来劝酒的话
- 如何锻炼现货白银的心态?
- 稳定排序与不稳定排序方法
- linux7网卡名确定网卡,centos7 修改默认的网卡名称
- 计算机信息检索在医学中的应用,探索医学文献检索在医学期刊编辑中的重要性及应用...
- 淘宝主图优化技巧 测试淘宝女鞋主图点击率方法