python如何流式读取数G超大文件
发表于:2025-11-08 作者:千家信息网编辑
千家信息网最后更新 2025年11月08日,这篇文章将为大家详细讲解有关python如何流式读取数G超大文件,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。如何流式读取数G超大文件使用 with...open.
千家信息网最后更新 2025年11月08日python如何流式读取数G超大文件
这篇文章将为大家详细讲解有关python如何流式读取数G超大文件,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
如何流式读取数G超大文件
使用 with...open... 可以从一个文件中读取数据,这是所有 Python 开发者都非常熟悉的操作。
但是如果你使用不当,也会带来很大的麻烦。
比如当你使用了 read 函数,其实 Python 会将文件的内容一次性的全部载入内存中,如果文件有 10 个G甚至更多,那么你的电脑就要消耗的内存非常巨大。
# 一次性读取 with open("big_file.txt", "r") as fp: content = fp.read()对于这个问题,你也许会想到使用 readline 去做一个生成器来逐行返回。
def read_from_file(filename): with open(filename, "r") as fp: yield fp.readline()
可如果这个文件内容就一行呢,一行就 10个G,其实你还是会一次性读取全部内容。
最优雅的解决方法是,在使用 read 方法时,指定每次只读取固定大小的内容,比如下面的代码中,每次只读取 8kb 返回。
def read_from_file(filename, block_size = 1024 * 8): with open(filename, "r") as fp: while True: chunk = fp.read(block_size) if not chunk: break yield chunk
上面的代码,功能上已经没有问题了,但是代码看起来代码还是有些臃肿。
借助偏函数 和 iter 函数可以优化一下代码
from functools import partial def read_from_file(filename, block_size = 1024 * 8): with open(filename, "r") as fp: for chunk in iter(partial(fp.read, block_size), ""): yield chunk
关于"python如何流式读取数G超大文件"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
文件
代码
内容
一次性
函数
更多
篇文章
一行
内存
方法
还是
问题
面的
不当
不错
实用
巨大
很大
臃肿
优雅
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全少儿绘画
宣传网络安全社会服务实践报告
榆树通用网络技术质量保障
腾讯云轻量服务器网站搭建
郑州市妇幼保健院本部服务器
网络安全防护工作会议讲话
幼儿园孩子网络安全宣传语
网络安全 网络文明手抄报
数据库学生表年龄
迪斯杰数据库审计
普陀区项目软件开发收费套餐
天龙八部哪个服务器的外国玩家多
软件开发技术专业弊端
中北大学图书馆数据库
阿里云oss数据库连接
我的世界服务器怎么给玩家标签
大学生软件开发学校
小白计算机与网络技术
软件开发 投标 项目方案
幼儿园网络安全平台授课感想
软件开发经理是干嘛的
护苗教育网络安全课
中美执法和网络安全
数据库增删改查语句多表查询
渠道无忧网络技术有限公司
T-SQL可用于什么数据库
网络安全认证具体包括
警察大学网络安全就业
ipv6服务器该做什么防护
网络安全诈骗例子