数据量非常大时,比如一份银行一个月的流水账单,可能有高达几千万的record。对于一般性能的计算机,有或者是读入到特殊的数据结构中,内存的存储可能就非常吃力了。考虑到我们使用数据的实际情况,并不需要将所有的数据提取出内存。当然读入数据库是件比较明智的做法。若不用数据库呢?可将大文件拆分成小块按块读入后,这样可减少内存的存储与计算资源

read()方法或read(100)

但是,当完成这一操作时,read() 会将整个文件加载到内存中。在文件较大时,往往会引发 MemoryError(内存溢出)。

那么,如何避免这个问题?

读每行readline()

这两种方法的运行结果是一样的,表面差别不大,但实际上有很大的区别: 第一种方法通过readlines方法,会首先一次性把文件载入到行字符串列表中,然后再对这个字符串列表进 行迭代; 而第二种方法运行的原理则有所不同,他并非一次性将全部的文件内容载入到内存中,而是在迭代的时 候,循环到了哪一行才将哪一行读入到内存。这里涉及到一个新的概念----迭代器(open函数返回的那个 就是文件迭代器),专栏里的文章会着重系统介绍,欢迎关注。 现在我们只需要知道,第二种方法是文本文件读取的最佳选择,它简单、且对任意大小的文件都有效,因 为他不会一次性把整个文件都载入到内存中,相反第一种方法存在内存压力过大的问题。

自动管理( with open() )

with 语句句柄负责打开和关闭文件(包括在内部块中引发异常时),for line in f 将文件对象 f 视为一个可迭代的数据类型,会自动使用 IO 缓存和内存管理,这样就不必担心大文件了。

python处理大文件_Python如何处理大文件(知识整理)相关推荐

  1. python不同数据的读入_python读写不同编码txt文件_python读写txt文件

    python读写不同编码txt文件_python读写txt文件 以后整理规范 [python] view plaincopy import os import codecs filenames=os. ...

  2. python数据量太大如何解决_Python 如何处理大文件

    Python作为一门程序设计语言,在易读.易维护方面有独特优势,越来越多的人使用 Python 进行数据分析和处理,而 Pandas 正是为了解决数据分析任务而创建的,其包含大量能便捷处理数据的函数和 ...

  3. python 解析xml格式_Python解析XML文件

    1.概述 Python有三种方法解析XML:SAX,DOM,以及ElementTree: 1.SAX (simple API for XML ) python 标准库包含SAX解析器,SAX用事件驱动 ...

  4. python下的所有文件_python批量复制文件夹下所有文件大小

    python复制文件夹下所有文件 Python---进阶---文件操作---获取文件夹下所有文件的数量和大小 一.####编写一个程序,统计当前目录下每个文件类型的文件数 ####思路: - 打开当前 ...

  5. python显示目录中的文件_Python中的文件和目录操作实现

    Python中的文件和目录操作实现 对于文件和目录的处理,虽然可以通过操作系统命令来完成,但是Python语言为了便于开发人员以编程的方式处理相关工作,提供了许多处理文件和目录的内置函数.重要的是,这 ...

  6. python各种文件_Python中对 文件 的各种骚操作

    Python中对 文件 的各种骚操作 python中对文件.文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块. 得到当前工作目录,即当前Python脚本工作的目录路径: os.getc ...

  7. python读取手机文件_python 读取 网络 文件

    Python之pandas数据加载.存储 Python之pandas数据加载.存储 0. 输入与输出大致可分为三类: 0.1 读取文本文件和其他更好效的磁盘存储格式 2.2 使用数据库中的数据 0.3 ...

  8. python 批量下载依赖_python通过txt文件批量安装依赖包的实现步骤

    python通过txt文件批量安装依赖包的实现步骤 如果要用某个开源框架,需要安装多个依赖包可以如下操作: 如依赖文件形式如下(可以不要版本号): txt文件名为requirements.txt,内容 ...

  9. python删除特定文件_python删除特定文件的方法

    python删除特定文件的方法 本文实例讲述了python删除特定文件的方法.分享给大家供大家参考.具体如下: #!/usr/bin/python # -*- coding: utf-8 -*- im ...

最新文章

  1. python嵌入式系统开发_Python在开发实时嵌入式系统中的作用
  2. SQL内存优化-最大化使用内存
  3. java struts 框架_java struts 框架编程
  4. 判断端口是否能用_【图文】 Windows自带入侵检测工具—Netstat命令查询 是否中木马...
  5. iMX6开发板-uboot-网络设置和测试
  6. 天池-新闻推荐-Baseline
  7. 单片机ad显示程序c语言,pic单片机ad转换c程序分享
  8. ssh 配置文件中 maxsessions 与 MaxStartups
  9. 跨境电商指南:如何处理客户投诉
  10. qml自定义控件:简易的带图标按钮
  11. C语言:判断一个数是不是素数(质数)
  12. Linux安装Tomcat完整步骤
  13. python获取四六级成绩单
  14. IT十年人生过客-七-眉毛与恶名
  15. narwal机器人_省时省心才见真章!Narwal云鲸J1智能扫拖机器人国内上市
  16. 企业数字化转型saas电商系统(已开源)
  17. 碎片化NFT研究报告:COSONFT提高NFT流动性的探索和实践
  18. Python制作PPT
  19. 产品读书《AI进化论:解码人工智能商业场景与案例》
  20. RT-Thread 入门学习笔记 - 熟悉邮箱rt_mailbox的使用

热门文章

  1. 基于JAVA+Servlet+JSP+MYSQL的设备管理系统
  2. python的循环控制结构是什么_7.Python控制和循环结构
  3. 斥候密报_斥候密报《最强王者》三国幕后巾帼之黄月英_吉吉建站手游网
  4. java 中成员_Java中的成员内部类
  5. windows server 2012 st 版本的php环境问题修复 与删除
  6. 关于plsql查询中文字符编码问题
  7. 120 - 算法 - 枚举 周期性跳转 openjudge:4148生理周期
  8. 跑linux编译什么CPU速度快,linux 加快编译速度
  9. java动态类加载_实现Java动态类载入机制
  10. 一行Python代码统计词频