一、計算檔案的行數
最簡單的辦法是把檔案讀入一個大的列表中,然後統計列表的長度.如果檔案的路徑是以引數的形式filepath傳遞的,那麼只用一行程式碼就可以完成我們的需求了:
count = len(open(filepath,`rU`).readlines())
如果是非常大的檔案,上面的方法可能很慢,甚至失效.此時,可以使用迴圈來處理:
count = -1
for count, line in enumerate(open(thefilepath, `rU`)):
count += 1
另外一種處理大檔案比較快的方法是統計檔案中換行符的個數`
`(或者包含`
`的字串,如在windows系統中):
count = 0
thefile = open(thefilepath, `rb`)
while True:
`)
thefile.close( )
引數`rb`是必須的,否則在windows系統上,上面的程式碼會非常慢.
linecache是專門支援讀取大檔案,而且支援行式讀取的函式庫。 linecache預先把檔案讀入快取起來,後面如果你訪問該檔案的話就不再從硬碟讀取
二、讀取檔案某一行的內容(測試過1G大小的檔案,效率還可以)
import linecache
count = linecache.getline(filename,linenum)
三、用linecache讀取檔案內容(測試過1G大小的檔案,效率還可以)
str = linecache.getlines(filename)
str為列表形式,每一行為列表中的一個元素