
1 congeec 2016 年 6 月 5 日 用 for line in f, readlines()会把文件里的内容都读进内存 https://stackoverflow.com/questions/17246260/python-readlines-usage-and-efficient-practice-for-reading |
2 21grams 2016 年 6 月 5 日 via Android 大文件用第一个,原因显而易见 |
3 luofeiyu 2016 年 6 月 5 日 内存受不了。 |
4 lukertty 2016 年 6 月 5 日 后者快一点 |
5 loading 2016 年 6 月 5 日 via Android 读一个大文件,自己对一下内存就知道了 |
6 billlee 2016 年 6 月 5 日 方法一叫做逐行读取文本文件 方法二叫做逐个读取列表元素 |
7 OnTheRoad 2016 年 6 月 5 日 第二种方法读取大文件时内存遭不住。 还是第一种方法最 Pythonic 。 参见(stackoverflow)[http://stackoverflow.com/questions/8009882/how-to-read-large-file-line-by-line-in-python] |
8 lll9p 2016 年 6 月 5 日 用 linecache 怎么样? |
9 jamesfjx 2016 年 6 月 6 日 via iPad |
10 practicer 2016 年 6 月 6 日 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 列表存进内存,在它们之上进行循环读取。 因此,读取大文件时用第一个语句,一般小文件这两个都可以。 |