内存不足时,python如何处理大文件

Python kingmo888 7930℃ 0评论

当下设备越来越便宜,配置越来越高,大多数时候帮助我们解决了诸多问题,代码上省事儿太多了。

而且,数据加载到内存再处理,速度相当快哈。

可就算你的内存32G,要处理个上白G的文件、上T的文件,咋整?

 

以读取文本文件为例,python有两种方法:

f = open(filename, '打开方式', encoding=编码)

① for line in f

 ② for line in f.readlines()

for line in f 语句将 file 对象转换成 iterable object ,

既然是可迭代对象,一次只加载一个 item ,解释器不会将所有 items 放进内存,因此节省了资源。

在 python 2.3 以前,要用 f.xreadlines()方法读大文件,它和 xrange 的作用一样,都是处理 iter(object),但在 2.3 后,官方明确用 for line in f 读取大文件。 

for line in f.readlines() 语句和第一个类似,但是它先执行 f.readlines(),直接把 file 对象中所有的 line items 列表存进内存,在它们之上进行循环读取。 

因此,读取大文件时用第一个语句,一般小文件这两个都可以。

 

当然了,为了提高效率

【请原谅我写了一半保存草稿,当我再次发现本文时,忘记了上述未写完的一句话的后面是什么 泪啊。】

 

未完成……

 

转载请注明:Python量化投资 » 内存不足时,python如何处理大文件

喜欢 (0)or分享 (0)
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址