码迷,mamicode.com
首页 > 编程语言 > 详细

python读取大文件和普通文件

时间:2018-11-12 11:24:35      阅读:242      评论:0      收藏:0      [点我收藏+]

标签:操作   with open   文件加载   read   这一   溢出   类型   enc   eth   

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

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 缓存和内存管理,这样就不必担心大文件了。

 

python读取大文件和普通文件

标签:操作   with open   文件加载   read   这一   溢出   类型   enc   eth   

原文地址:https://www.cnblogs.com/tuobei/p/9944650.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!