读取文件时,如果文件过大,则一次读取全部内容到内存,容易造成内存不足,所以要对大文件进行批量的读取内容。

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读取大文件相关推荐

  1. python读取大文件-python如何读取大文件以及分析时的性能优化小技巧

    在二代.三代测序背景下,分析人员难免会遇到解析超过1G.或者10G以上的文件.这里将给大家简单介绍下如何用python读取大文件,并给大家提两个优化代码的小建议. 首先,python 读取GB级大文件 ...

  2. python读取大文件-使用Python读取大文件的方法

    背景 最近处理文本文档时(文件约2GB大小),出现memoryError错误和文件读取太慢的问题,后来找到了两种比较快Large File Reading 的方法,本文将介绍这两种读取方法. 准备工作 ...

  3. python读取大文件-强悍的Python读取大文件的解决方案

    Python 环境下文件的读取问题,请参见拙文 Python基础之文件读取的讲解 这是一道著名的 Python 面试题,考察的问题是,Python 读取大文件和一般规模的文件时的区别,也即哪些接口不适 ...

  4. python读文件代码-简单了解Python读取大文件代码实例

    这篇文章主要介绍了简单了解Python读取大文件代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 通常对于大文件读取及处理,不可能直接加载到内 ...

  5. PHP 与Python 读取大文件的区别

    php读取大文件的方法 <?php function readFile($file) {# 打开文件$handle = fopen($file, 'rb');while (feof($handl ...

  6. python读取大文件性能_强悍的Python读取大文件的解决方案

    Python 环境下文件的读取问题,请参见拙文 Python基础之文件读取的讲解 这是一道著名的 Python 面试题,考察的问题是,Python 读取大文件和一般规模的文件时的区别,也即哪些接口不适 ...

  7. python中0xff_强悍的Python读取大文件的解决方案

    这是一道著名的 Python 面试题,考察的问题是,Python 读取大文件和一般规模的文件时的区别,也即哪些接口不适合读取大文件. 1. read() 接口的问题 f =open(filename, ...

  8. python读取超大文件-强悍的Python读取大文件的解决方案

    Python 环境下文件的读取问题,请参见拙文 Python基础之文件读取的讲解 这是一道著名的 Python 面试题,考察的问题是,Python 读取大文件和一般规模的文件时的区别,也即哪些接口不适 ...

  9. python读取大文件的某行_python 大文件以行为单位读取方式比对

    先前需要做一个使用python读取大文件(大于1G),并逐条存入内存进行处理的工作.做了很多的尝试,最终看到了如下的文章. 该文章实际上提供了集中读取大文件的方式,先经过测试总结如下 1. for l ...

  10. 强悍的 Python —— 读取大文件

    Python 环境下文件的读取问题,请参见拙文 Python 基础 -- 文件 这是一道著名的 Python 面试题,考察的问题是,Python 读取大文件和一般规模的文件时的区别,也即哪些接口不适合 ...

最新文章

  1. 空扫描Idle Scanning
  2. 实例介绍Cocos2d-x开关菜单
  3. 深度学习:语义分割网络
  4. matlab实现定标旋转,Matlab摄像机标定工具箱的使用说明精编.doc
  5. android 3d渲染动画效果吗,Android如何实现3D效果
  6. python装饰器函数后执行_Python装饰器限制函数运行时间超时则退出执行
  7. python读取配置文件 ConfigParser
  8. Linux中的head命令
  9. 为什么合伙公司,一定要重视退出机制呢?
  10. 《C语言及程序设计》实践参考——输出小星星(全解)
  11. Python的并发并行[3] - 进程[1] - 多进程的基本使用
  12. sharepoint 2013 配件控制FileUpload如何检查是否图像的方法
  13. LinAlgError: SVD did not converge
  14. VS2005精简版(二)
  15. 男同胞要一定要看——酒桌上用来劝酒的话
  16. 如何锻炼现货白银的心态?
  17. 稳定排序与不稳定排序方法
  18. linux7网卡名确定网卡,centos7 修改默认的网卡名称
  19. 计算机信息检索在医学中的应用,探索医学文献检索在医学期刊编辑中的重要性及应用...
  20. 淘宝主图优化技巧 测试淘宝女鞋主图点击率方法

热门文章

  1. 计算机英语求职简历模板,计算机专业英文简历模板
  2. WIN7任务栏缩略图偶尔消失不见
  3. c语言策划案,大班语言活动策划方案5篇
  4. 如何删除百度安全卫士等删除不掉的软件
  5. 设置html页面打印的页眉页脚
  6. 今天,体验了一把Xen虚拟机
  7. 企业级数据仓库建设最新版(附16页文档)
  8. 3.1_12 JavaSE入门 P11 【集合】单例 Collection集合
  9. Angular 元数据
  10. Java--等差数列求和(计算1到100的和)