50010623 发表于 2015-12-3 13:18:48

ZH奶酪:Python按行读取文件

  1:readline()



file = open("sample.txt")
while 1:
line = file.readline()
if not line:
break
pass # do something
file.close()

  一行一行得从文件读数据,显然比较慢;
  不过很省内存;
  测试读10M的sample.txt文件,每秒大约读32000行;
  2:fileinput



import fileinput
for line in fileinput.input("sample.txt"):
pass
  写法简单一些,不过测试以后发现每秒只能读13000行数据,效率比上一种方法慢了两倍多;
  3:readlines()



file = open("sample.txt")
while 1:
lines = file.readlines(100000)
if not lines:
break
for line in lines:
pass # do something

file.close()
  用同样的数据测试,它每秒可以读96900行数据!效率是第一种方法的3倍,第二种方法的7倍!
  4:文件迭代器
  每次只读取和显示一行,读取大文件时应该这样:



file = open("sample.txt")
for line in file:
pass # do something

file.close()
页: [1]
查看完整版本: ZH奶酪:Python按行读取文件