Python按行讀文件對比

1. 最基本的讀文件方法:html

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

  一行一行得從文件讀數據,顯然比較慢;不過很省內存。python

  在個人機器上讀10M的sample.txt文件,每秒大約讀32000行緩存

2. 用fileinput模塊測試

# File: readline-example-2.py
 
import fileinput
 
for line in fileinput. input ( "sample.txt" ):
    pass

  寫法簡單一些,不過測試之後發現每秒只能讀13000行數據,效率比上一種方法慢了兩倍多……spa

3. 帶緩存的文件讀取code

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

  這個方法真的更好嗎?事實證實,用一樣的數據測試,它每秒能夠讀96900行數據!效率是第一種方法的3倍,第二種方法的7倍!htm

 

在Python 2.2之後,咱們能夠直接對一個file對象使用for循環讀每行數據:對象

# File: readline-example-5.py
 
file = open ( "sample.txt" )
 
for line in file :
    pass # do something

  而在Python 2.1裏,你只能用xreadlines迭代器來實現:blog

# File: readline-example-4.py
 
file = open ( "sample.txt" )
 
for line in file .xreadlines():
    pass # do something

 

轉自:http://www.cnblogs.com/xuxn/archive/2011/07/27/read-a-file-with-python.html內存

相關文章
相關標籤/搜索