這裡我來系統的介紹一下python進行檔案遍歷的幾種方法,並進行細緻比較。
檔案的遍歷
因為檔案儲存了很多字元和行,因此也是迴圈常見的典型使用案例,最原始的方法可以呼叫檔案物件的read方法,把檔案內容一次性載入至字串物件
那麼如果想逐行讀取文字檔案呢?for迴圈是最易於編寫及執行最快的選擇,這裡有兩種方法,
這兩種方法的執行結果是一樣的,表面差別不大,但實際上有很大的區別:
第一種方法透過readlines方法,會首先一次性把檔案載入到行字串列表中,然後再對這個字串列表進行迭代;
而第二種方法執行的原理則有所不同,他並非一次性將全部的檔案內容載入到記憶體中,而是在迭代的時候,迴圈到了哪一行才將哪一行讀入到記憶體。這裡涉及到一個新的概念----迭代器(open函式返回的那個就是檔案迭代器),專欄裡的文章會著重系統介紹,歡迎關注。
現在我們只需要知道,第二種方法是文字檔案讀取的最佳選擇,它簡單、且對任意大小的檔案都有效,因為他不會一次性把整個檔案都載入到記憶體中,相反第一種方法存在記憶體壓力過大的問題。
關於資料科學更系統、更深入的探討可進入我們的專欄《Python資料科學之路》:
本專欄模仿美劇劇集編排分為五季,第一季:Python程式語言核心基礎、第二季:Python資料分析基本工具、第三季:Python語言描述的數學基礎、第四季:機器學習典型演算法專題、第五季:實戰熱點深度應用。
這裡我來系統的介紹一下python進行檔案遍歷的幾種方法,並進行細緻比較。
檔案的遍歷
因為檔案儲存了很多字元和行,因此也是迴圈常見的典型使用案例,最原始的方法可以呼叫檔案物件的read方法,把檔案內容一次性載入至字串物件
那麼如果想逐行讀取文字檔案呢?for迴圈是最易於編寫及執行最快的選擇,這裡有兩種方法,
這兩種方法的執行結果是一樣的,表面差別不大,但實際上有很大的區別:
第一種方法透過readlines方法,會首先一次性把檔案載入到行字串列表中,然後再對這個字串列表進行迭代;
而第二種方法執行的原理則有所不同,他並非一次性將全部的檔案內容載入到記憶體中,而是在迭代的時候,迴圈到了哪一行才將哪一行讀入到記憶體。這裡涉及到一個新的概念----迭代器(open函式返回的那個就是檔案迭代器),專欄裡的文章會著重系統介紹,歡迎關注。
現在我們只需要知道,第二種方法是文字檔案讀取的最佳選擇,它簡單、且對任意大小的檔案都有效,因為他不會一次性把整個檔案都載入到記憶體中,相反第一種方法存在記憶體壓力過大的問題。
關於資料科學更系統、更深入的探討可進入我們的專欄《Python資料科學之路》:
醬油哥:來吧,一起踏上Python資料科學之路本專欄模仿美劇劇集編排分為五季,第一季:Python程式語言核心基礎、第二季:Python資料分析基本工具、第三季:Python語言描述的數學基礎、第四季:機器學習典型演算法專題、第五季:實戰熱點深度應用。