9我不会告诉你,其实直接可以这样:
file = open(file_name)
for line in file:
dosomething(line)
不过这样做,每一行会保留换行符
补充一下,由于手头上没有电脑,我不确定我这种方法是否比你的第一种快,但是你的第一种方法是一次性将文件的内容全部读进一个list后再用for进行遍历,而第二种是一次读取一行处理,所以,第一种比第二种快是在理解范围内的,至于pypy的问题,我个人的理解是pypy优化while比优化for优化得更多(猜测)。。如果是特大文件的话,不推荐使用第一种方法。
2015年3月1号再次补充
基于严谨的科学态度,今天做了测试,我之前提到的方法是不会一次性读取所有文件的,使用660m的文件进行测试,
for i in file.readlines耗时1.5s
for i in file耗时0.86
while file.readline耗时3.3
而且,我还发现了一个更加神奇的事情,temp = file.readlines
for i in temp
比直接使用for i in file.readlines要快,耗时1.2s
最后测试了不同大小的文件,发现无论是大文件还是小文件,都是直接对文件对象进行for操作是最快的!
不过该结论局限于我自己的测试数据