鱼C论坛

 找回密码
 立即注册
楼主: 沉迷include

[技术交流] 如何读取几百G的文件,不爆内存

[复制链接]
发表于 2020-3-22 09:36:55 | 显示全部楼层
吃瓜
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-3-27 23:01:55 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-3-28 08:43:13 | 显示全部楼层
看一看
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-28 19:39:22 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-3-29 03:56:30 | 显示全部楼层
几百 G?一定要拜读下。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-29 14:02:18 | 显示全部楼层
1
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-4-3 18:29:26 | 显示全部楼层
zltzlt 发表于 2019-8-24 21:40
我没有那么大的文件1 G 的都没有

我有个 437GB 的文件
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-3 18:36:18 | 显示全部楼层
看看
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-4-3 18:47:09 | 显示全部楼层
我认为可以改进成这样:
  1. import time
  2. def myreadlines(f, newline):
  3.     buf = ''
  4.     while True:
  5.         while newline in buf:
  6.             pos = buf.index(newline)
  7.             yield buf[:pos]
  8.             buf = buf[pos + len(newline):]
  9.         chunk = f.read(4096) # 每次读取的大小
  10.         time.sleep(0.01)

  11.         if not chunk:
  12.             yield buf
  13.             break
  14.         buf += chunk
  15.         

  16. if __name__ == '__main__':
  17.     # 文件中的分隔符
  18.     flite = r"\n"
  19.     with open("password.txt") as f:
  20.         for line in myreadlines(f, flite):
  21.             print(line)
复制代码

这样还可以保护CPU
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-3 19:15:37 From FishC Mobile | 显示全部楼层
分段读取
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-3 19:40:00 | 显示全部楼层
???
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-4-6 00:40:59 | 显示全部楼层
12
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-4-6 15:00:14 From FishC Mobile | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-4-7 16:58:44 | 显示全部楼层
我有很多
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-8 21:31:31 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-4-18 23:03:10 From FishC Mobile | 显示全部楼层
666
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-4-29 11:42:49 | 显示全部楼层
学习一下
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-2 18:36:16 | 显示全部楼层
111
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-7-6 16:44:04 | 显示全部楼层
学习一下
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-7 06:40:11 | 显示全部楼层
学习一下,谢谢分享
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-22 03:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表