在Python 2.6和2.7中,我认为这两个结构是相同的:
方法A
i=0
f=open('fred.txt','r')
for line in f.readline():
i+=1
print i
方法B
i=0
f=open('fred.txt','r')
for line in f:
i+=1
print i
但是,当fred.txt增长到74,000行时,每行长度为2,684个字符,方法A 打印2685,而方法B 打印74000.显然,方法B是首选,但为什么方法A适用于小文件但是大文件失败?
答案 0 :(得分:17)
有一个拼写错误,它应该是f.readlines()
。你正在阅读一行并循环遍历该行中的每个字符。
两种方法(readlines
vs直接迭代文件)应该给出相同的结果,但readlines
会将整个内容存储在内存中。