逐行读取文本时哪一种方法更好?

方法一:python

with open("test_read.txt") as f:
    for i, v in enumerate(f):
	print i, ":", v
	print "-" * 50

方法二:code

with open("test_read.txt") as f:
    for i, v in enumerate(f.readlines()):
	print i, ":", v
	print "-" * 50

说明: 一、for i, v in enumerate(f) 语句将 file 对象转换成 iterable object ,既然是可迭代对象,一次只加载一个 item ,解释器不会将全部 items 放进内存,所以节省了资源。在 python 2.3 之前,要用 f.xreadlines()方法读大文件,它和 xrange 的做用同样,都是处理 iter(object),但在 2.3 后,官方明确用 for line in f 读取大文件。对象

二、for i, v in enumerate(f.readlines()) 语句和第一个相似,可是它先执行 f.readlines(),直接把 file 对象中全部的 line items 列表存进内存,在它们之上进行循环读取。 所以,读取大文件时用第一个语句,通常小文件这两个均可以内存

相关文章
相关标签/搜索