1. 程式人生 > >大檔案讀寫

大檔案讀寫

1)  檔案讀取方式

read()將文字檔案所有行讀到一個字串中。

readline()是一行一行的讀

readlines()是將文字檔案中所有行讀到一個list中,文字檔案每一行是list的一個元素。優點:readline()可以在讀行過程中跳過特定行。

2)大檔案讀取方式1:分塊讀取

將大檔案分割成若干小檔案處理,處理完每個小檔案後釋放該部分記憶體。這裡用了iter 和 yield

def read_in_chunks(filePath, chunk_size=1024*1024):

 

    file_object = open(filePath)

    while True:

        chunk_data = file_object.read(chunk_size)

        if not chunk_data:

            break

        yield chunk_data

       

if __name__ == "__main__":

    filePath = './path/filename'

 

    for chunk in read_in_chunks(filePath):

        process(chunk)  # <do something with chunk>

3)大檔案讀取方式2:for line in f

l  with語句開啟和關閉檔案,包括丟擲一個內部塊異常。

l  for line in f檔案物件f視為一個迭代器,會自動的採用緩衝IO和記憶體管理,所以你不必擔心大檔案。

with open(...) as f:

  for line in f:

    process(line)  # <do something with line>

4)二進位制檔案讀寫

對於文字資料,可以直接以“r”形式讀寫,但對於圖片,音樂等等,這些東西都是有規則的二進位制檔案,讀取方式是“rb”。