1. 最基本的讀檔案方法:
# file: readline-example-1.pyfile = open("sample.txt")
while 1:
line = file.readline()
if not line:
break
pass # do something
一行一行得從檔案讀資料,顯然比較慢;不過很省記憶體。
在我的機器上讀10m的sample.txt檔案,每秒大約讀32000行
2. 用fileinput模組
# file: readline-example-2.pyimport fileinput
for line in fileinput.input("sample.txt"):
pass
寫法簡單一些,不過測試以後發現每秒只能讀13000行資料,效率比上一種方法慢了兩倍多……
3. 帶快取的檔案讀取
# file: readline-example-3.pyfile = open("sample.txt")
while 1:
lines = file.readlines(100000)
if not lines:
break
for line in lines:
pass # do something
這個方法真的更好嗎?事實證明,用同樣的資料測試,它每秒可以讀96900行資料!效率是第一種方法的3倍,第二種方法的7倍!
在python 2.2以後,我們可以直接對乙個file物件使用for迴圈讀每行資料:
# file: readline-example-5.pyfile = open("sample.txt")
for line in file:
pass # do something
而在python 2.1裡,你只能用xreadlines迭代器來實現:
# file: readline-example-4.pyfile = open("sample.txt")
for line in file.xreadlines():
pass # do something
翻譯自:
Python按行讀檔案
1.最基本的讀檔案方法 file readline example 1.py file open sample.txt while 1 line file.readline if not line break pass do something 一行一行得從檔案讀資料,顯然比較慢 不過很省記憶體。在...
python 按行讀大檔案的方法
這裡的大檔案指一次讀的話會使記憶體爆掉的檔案,所以我們需要一行一行地讀。乙個名為123的txt檔案,裡面分別按行存了三個數字 1 2和3。with open 123.txt as f for line in f print line.strip 輸出12 3 with open 123.txt as...
Csdiofile 讀 按行讀寫檔案
endif cstdiofile file file.open t test.txt cfile modecreate cfile modenotruncate cfile modereadwrite if 0 檔案開啟模式可組合使用,用 隔開,常用的有以下幾種 cfile modecreate 以...