1. 程式人生 > >python快速讀取非常大的檔案

python快速讀取非常大的檔案

讀取大檔案是我們平時經常會遇到的問題,我這裡給出兩個比較好的解決方案。第一種

with open("test.txt") as f:
    for line in f:
        #do something with data

這種做法非常的簡單。這個程式碼在開啟檔案的過程中,不會一次性讀取全部檔案,而是採用每次讀取一行的方式,類似於buffer機制。

當然我們也可以自己去實現一個buffer,然後通過協程的方式操作

def readInChunks(fileObj, chunkSize=4096):
    """
    Lazy function to read a file piece by piece.
    Default chunk size: 4kB.
    """
while 1: data = fileObj.read(chunkSize) if not data: break yield data f = open('bigFile') for chuck in readInChunks(f): #do_something(chunk) f.close()

這段程式碼中我們通過每次讀取4k大小的資料,將所有檔案讀取完。

我對於一個3GB大小的資料進行了讀取測試,分別用時如下:

28.54150631145376 s
28.522545760074877 s

兩者所用時間差不多。