如何使用Python讀取大文件?
這里以讀取txt大文件為例,簡單介紹一下Python是如何讀取大文件的,系統內存在8G左右,txt文件的大小為5G,實驗環境win10+python3.6+pycharm2018,主要內容如下:
1.首先,按照最原始的方法讀取txt文件,即用open函數直接打開txt文件,一次將所有數據讀入到內存中,這里如果文件大于系統運行內存,會直接報Memery Error錯誤,測試代碼如下,非常簡單:
運行這個程序,讀取花費時間大概在41s左右,如下:
2.最基本的方法,為了提高讀取速度,以二進制方式打開文件,測試代碼如下,對上面的代碼只需要稍微修改一下就行,open打開時,設置方式為rb:
運行這個程序,截圖如下,讀取時間大概在7s左右,明顯比直接讀取快6倍左右:
3.為了更快的提高讀取速度,這里我們在read讀取文件的時候,可以按塊大小讀取,每次讀取一定大小的塊,依次循環,直到整個文件讀完,測試代碼如下,也非常簡單:
運行這個程序,截圖如下,讀取時間大概在3.5s左右,比上面直接讀取快2倍左右:
4.這里還有一種提高讀取的方法就是使用with open打開文件,把文件對象視為一個迭代器,系統會自動使用緩沖IO和內存管理,所以讀取速度也會有一定提升,測試代碼如下:
運行程序,讀取時間大概在26s左右,比直接讀取快1倍左右,如下:
5.當然,對于其他類型的大文件,像CSV,Excel等,讀取時也可以按塊讀取,速度也會有明顯的提升,基本代碼如下,每次讀取一定塊大小的文件,直到整個文件讀完:
至此,我們就完成了使用Python讀取大文件。總的來說,基本思想就是按塊讀取,每次只讀取一定塊大小的數據,這樣讀取速度會有明顯提升,網上也有相關教程和資料,介紹的非常詳細,感興趣的話,可以搜一下,希望以上分享的內容能對你有所幫助吧,也歡迎大家評論、留言進行補充。