首頁 > 後端開發 > Python教學 > 關於Python讀取文件的四種不同方法的比較

關於Python讀取文件的四種不同方法的比較

黄舟
發布: 2017-05-22 23:23:20
原創
2177 人瀏覽過

Python的文字處理是經常碰到的一個問題,以下這篇文章主要給大家介紹了關於Python讀取檔案的幾種不同方法比對的相關資料,文中給了詳細的範例程式碼供大家理解和學習,需要的朋友們下面來一起看看吧。

前言

大家都知道Python 讀檔案的方式多種多樣,但是當需要讀取一個大檔案的時候,不同的讀取方式會有不一樣的效果。下面就來看看詳細的介紹吧。

場景

逐行讀取一個2.9G 的大檔案

  • CPU i7 6820HQ

  • RAM 32G

方法

#對每一行的讀取進行一次分割字串操作

以下方法都使用with…as 方法開啟檔案。

with 語句適用於對資源進行存取的場合,確保不管使用過程中是否發生異常都會執行必要的「清理」操作,釋放資源,例如檔案使用後自動關閉、執行緒中鎖的自動獲取和釋放等。

方法一最通用的讀取檔案方式

with open(file, 'r') as fh:
 for line in fh.readlines():
 line.split("|")
登入後複製

運行結果:耗時15.4346568584 秒


#系統監視器中顯示記憶體從4.8G 一下子飆到了8.4G, fh.readlines() 將讀取的所有行資料存到內存,這種方法適合小檔案。


方法二


with open(file, 'r') as fh:
 line = fh.readline()
 while line:
 line.split("|")
登入後複製

運行結果:耗時22.3531990051 秒

#記憶體幾乎沒有變化,因為內存中只存取一行的數據,但是時間明顯比上一次的長,對於進一步處理數據來說效率不高。

方法三

with open(file) as fh:
 for line in fh:
 line.split("|")
登入後複製

運行結果:耗時13.9956979752 秒

#記憶體幾乎沒有變化,速度也比方法二快。

for line in fh 將檔案物件 fh 視為可迭代的,它會自動使用緩衝的 IO 和記憶體管理,因此您不必擔心大檔案。這是很 pythonic 的方式!

方法四fileinput 模組

for line in fileinput.input(file):
 line.split("|")
登入後複製
運行結果: 耗時26.1103110313 秒

#記憶體增加了 200- 300 MB,速度是以上最慢的。

###總結############以上方法僅供參考,公認的大檔案讀取方法還是三最好。但是具體情況還是要根據機器的效能、處理資料的複雜度。 ######【相關推薦】######1. ###Python讀取檔案後n行的程式碼範例#########2. ###使用python讀取文件小程式######

以上是關於Python讀取文件的四種不同方法的比較的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板