博客
关于我
Python读取大文件
阅读量:648 次
发布时间:2019-03-15

本文共 622 字,大约阅读时间需要 2 分钟。

Python读取大文件

Python读取2GB文件的时候,用普通方式读取报错MemoryError,说明该无文件无法被装载在内存中发生溢出了。

read和readlines都是将整个文件加入到内存中,文件较大时,会引发MemoryError

逐行读取

with open('filename', 'r', encoding = 'utf-8') as f:    while True:        line = f.readline()  # 逐行读取        if not line:  # 到 EOF,返回空字符串,则终止循环            break        print(line)

指定长度读取

while True:        data = f.read(1024)  # 每次读取指定的长度        if not data:            break        print(data)

自动管理

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

with:语句句柄负责打开和关闭文件(包括在内部块中引发异常时)

for line in f:将文件对象 f 视为一个可迭代的数据类型,会自动使用 IO 缓存和内存管理,这样就不必担心大文件了。

转载地址:http://nmrlz.baihongyu.com/

你可能感兴趣的文章
Node-RED中使用node-red-browser-utils节点实现选择Windows操作系统中的文件并实现图片预览
查看>>
Node-RED中使用node-red-contrib-image-output节点实现图片预览
查看>>
Node-RED中使用node-red-node-ui-iframe节点实现内嵌iframe访问其他网站的效果
查看>>
Node-RED中使用Notification元件显示警告讯息框(温度过高提示)
查看>>
Node-RED中使用range范围节点实现从一个范围对应至另一个范围
查看>>
Node-RED中实现HTML表单提交和获取提交的内容
查看>>
Node-RED中将CSV数据写入txt文件并从文件中读取解析数据
查看>>
Node-RED中建立TCP服务端和客户端
查看>>
Node-RED中建立Websocket客户端连接
查看>>
Node-RED中建立静态网页和动态网页内容
查看>>
Node-RED中解析高德地图天气api的json数据显示天气仪表盘
查看>>
Node-RED中连接Mysql数据库并实现增删改查的操作
查看>>
Node-RED中通过node-red-ui-webcam节点实现访问摄像头并截取照片预览
查看>>
Node-RED中配置周期性执行、指定时间阶段执行、指定时间执行事件
查看>>
Node-RED安装图形化节点dashboard实现订阅mqtt主题并在仪表盘中显示温度
查看>>
Node-RED怎样导出导入流程为json文件
查看>>
Node-RED订阅MQTT主题并调试数据
查看>>
Node-RED通过npm安装的方式对应卸载
查看>>
node-request模块
查看>>
node-static 任意文件读取漏洞复现(CVE-2023-26111)
查看>>