首頁 >後端開發 >Python教學 >如何在Python 2.7中高效讀取大型CSV檔案?

如何在Python 2.7中高效讀取大型CSV檔案?

Barbara Streisand
Barbara Streisand原創
2024-11-19 16:42:03183瀏覽

How Can I Efficiently Read Large CSV Files in Python 2.7?

使用Python 2.7 讀取大型CSV 檔案

應對使用Python 2.7 讀取巨大CSV 檔案的挑戰尤其可能會造成記憶體問題,尤其可能會造成記憶體問題,特別是檔案超過300,000 行。為了克服這個障礙,避免將整個文件讀入記憶體至關重要。

記憶體管理技術

使用生成器可以實現記憶體高效的處理。不要累積列表中的所有行,而是單獨產生每一行。這種方法(以 getstuff 函數的生成器為例)可大幅減少記憶體消耗。

此外,請考慮 itertools 模組中的 dropwhile 和 takewhile 函數等最佳化。這些透過跳過不相關的行來促進高效過濾,進一步節省記憶體。

效能最佳化

除了記憶體管理之外,提高效能還包括盡量減少不必要的操作。 getdata 函數應該直接迭代 getstuff 產生器,消除不必要的中間列表。

範例用法

使用生成器重新編寫程式碼會產生更有效的解決方案:

def getstuff(filename, criterion):
    ...  # Same generator code as above

def getdata(filename, criteria):
    ...  # Same generator code as above

# Process rows directly
for row in getdata(somefilename, sequence_of_criteria):
    ...  # Process the current row

此程式碼一次有效地處理一行,大幅減少記憶體使用並提高效能,即使對於巨大的CSV 檔案也是如此。

以上是如何在Python 2.7中高效讀取大型CSV檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn