读取文件,最常见的方式是:

with open('filename', 'r', encoding = 'utf-8') as f:
for line in f.readlines():
do_something(line)

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

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

这才是 Pythonci 最完美的方式,既高效又快速:

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

最新文章

  1. ubuntu共享文件配置
  2. C语言--指向多维数组的指针和指针数组
  3. Echarts3 使用教程
  4. HTML页面表单输入框去掉鼠标选中后边框变色的效果
  5. 写一个EF的CodeFirst的Demo
  6. 转:GraphicsMagick介绍及安装
  7. 编写一个python脚本功能-备份
  8. .Net IOC框架入门之二 CastleWindsor
  9. C语言作业第二次总结
  10. CentOS 7 安装Boost 1.61
  11. 磨人的Fragment的转换
  12. 吴恩达机器学习笔记13-正规方程(Normal Equation)
  13. (10)Microsoft office Word 2013版本操作入门_word表格
  14. 添加Nginx为系统服务(设置开机启动)
  15. node服务器中打开html文件的两种方法
  16. MySQL存储过程 事务transaction
  17. Asp Url汉字乱码的问题
  18. P1174 打砖块
  19. C# AutoMapper的简单扩展
  20. 在vue中import()语法不能传入变量

热门文章

  1. ccsu小助手
  2. SQA1
  3. 48. Rotate Image (matrix retation, transpose) Amazon problem
  4. Scrapy研究探索(三)——Scrapy核心架构与代码执行分析
  5. HDU 2082 普通型母函数
  6. 【转】Android应用程序窗口(Activity)窗口对象(Window)创建指南
  7. 最短路算法 —— Dijkstra算法
  8. [18/12/07]String 字符串
  9. 2018.11.9 Dubbo入门学习
  10. DisparityCostVolumeEstimator.cpp