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
  • asp之家 网络编程 m.aspxhome.com