Python基于read(size)方法读取超大文件
作者:我太难了008 时间:2022-06-06 12:27:15
pyhon读取文件很方便,但是,如果文件很大,而且还是一行文件,那就蛋疼了. 不过还好有read(size)方法,这个方法就是每次读取size大小的数据到内存中
下面来个示例
def readlines(f, separator):
'''
读取大文件方法
:param f: 文件句柄
:param separator: 每一行的分隔符
:return:
'''
buf = ''
while True:
while separator in buf:
position = buf.index(separator) # 分隔符的位置
yield buf[:position] # 切片, 从开始位置到分隔符位置
buf = buf[position + len(separator):] # 再切片,将yield的数据切掉,保留剩下的数据
chunk = f.read(4096) # 一次读取4096的数据到buf中
if not chunk: # 如果没有读到数据
yield buf # 返回buf中的数据
break # 结束
buf += chunk # 如果read有数据 ,将read到的数据加入到buf中
with open('text.txt',encoding='utf-8') as f:
for line in readlines(f,'|||'):
# 为什么readlines函数能够使用for循环遍历呢, 因为这个函数里面有yield关键字呀, 有它就是一个生成器函数 ......
print(line)
测试文件text.txt
fgshfsljflsjfls|||fyhdiyfdfhn|||fudofdb钦铁杆jdlfdl|||tedsthfdskfdk
打印结果
fgshfsljflsjfls
fyhdiyfdfhn
fudofdb钦铁杆jdlfdl
tedsthfdskfdk
来源:https://www.cnblogs.com/z-qinfeng/p/12052007.html
标签:Python,read,size,方法,读取,文件
0
投稿
猜你喜欢
CI框架整合smarty步骤详解
2023-11-14 11:18:11
通过5个例子让你学会Pandas中的字符串过滤
2022-10-09 03:44:36
不需要用到正则的Python文本解析库parse
2022-11-08 17:28:09
python实现FTP文件传输的方法(服务器端和客户端)
2021-03-29 23:36:08
.NET Core、Xamarin、.NET Standard和.NET Framework四者之间的区别介绍
2023-07-13 03:38:13
Python中的引用知识点总结
2023-10-31 08:21:43
python之从文件读取数据到list的实例讲解
2021-11-11 08:04:26
Pandas 对Dataframe结构排序的实现方法
2021-11-26 09:06:48
解决Keras 中加入lambda层无法正常载入模型问题
2022-02-21 03:41:11
基于PyQt5制作一个PDF文件合并器
2023-04-27 07:50:58
ASP Framework_1_简介
2009-10-12 11:35:00
python实现的简单RPG游戏流程实例
2021-11-13 21:29:53
python字典key不能是可以是啥类型
2022-12-28 20:54:04
python基于pygame实现飞机大作战小游戏
2021-04-27 07:59:17
简单了解python反射机制的一些知识
2022-02-05 15:01:04
asp之自动闭合HTML/ubb标签函数+简单注释
2008-09-29 12:21:00
单步调试 step into/step out/step over 区别说明
2022-03-09 20:03:26
Python数据库反向生成Model最优方案示例
2023-11-02 18:37:36
Python使用captcha库制作带参数输入验证码案例
2022-01-25 20:26:03
Python 用户登录验证的小例子
2021-07-04 09:39:25