成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Python 文件讀取的不同方法比對

Java_oldboy / 2778人閱讀

摘要:讀文件的方式多種多樣,但是當需要讀取一個大文件的時候,不同的讀取方式會有不一樣的效果??偨Y(jié)以上方法僅供參考,公認的大文件讀取方法還是三最好。原文地址文件讀取的不同方法比對我的博客時空路由器

Python 讀文件的方式多種多樣,但是當需要讀取一個大文件的時候,不同的讀取方式會有不一樣的效果。

場景

逐行讀取一個 2.9G 的大文件

CPU i7 6820HQ

RAM 32G

方法

對每一行的讀取進行一次分割字符串操作
以下方法都使用 with...as 方法打開文件。

with 語句適用于對資源進行訪問的場合,確保不管使用過程中是否發(fā)生異常都會執(zhí)行必要的“清理”操作,釋放資源,比如文件使用后自動關閉、線程中鎖的自動獲取和釋放等。

方法一 最通用的讀文件方式
with open(file, "r") as fh:
  for line in fh.readlines():
    line.split("|")

運行結(jié)果: 耗時 15.4346568584 秒
系統(tǒng)監(jiān)視器中顯示內(nèi)存從 4.8G 一下子飆到了 8.4G, fh.readlines() 將讀取的所有行數(shù)據(jù)存到內(nèi)存,這種方法適合小文件。

方法二
with open(file, "r") as fh:
  line = fh.readline()
  while line:
    line.split("|")

運行結(jié)果: 耗時 22.3531990051 秒
內(nèi)存幾乎沒有變化,因為內(nèi)存中只存取一行的數(shù)據(jù),但是時間明顯比上一次的長,對于進一步處理數(shù)據(jù)來說效率不高。

方法三
with open(file) as fh:
  for line in fh:
    line.split("|")

運行結(jié)果: 耗時 13.9956979752 秒
內(nèi)存幾乎沒有變化,速度也比方法二快。
for line in fh 將文件對象 fh 視為可迭代的,它自動使用緩沖的 IO 和內(nèi)存管理,因此您不必擔心大文件。這是很 pythonic 的方式!

方法四 fileinput 模塊
for line in fileinput.input(file):
  line.split("|")

運行結(jié)果: 耗時 26.1103110313 秒
內(nèi)存增加了 200-300 MB,速度是以上最慢的。

總結(jié)

以上方法僅供參考,公認的大文件讀取方法還是三最好。但是具體情況還是要根據(jù)機器的性能、處理數(shù)據(jù)的復雜度。

原文地址:Python 文件讀取的不同方法比對
我的博客:時空路由器

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/44385.html

相關文章

  • 使用OpenCV與Face++實現(xiàn)人臉解鎖

    摘要:本文講解了如何使用,基于與實現(xiàn)人臉解鎖的功能。上接上一段程序讀取使用創(chuàng)建獲取進度確認到目前為止,你應該已經(jīng)可以就給定的兩張圖片比對是否是同一個人了。 近幾天微軟的發(fā)布會上講到了不少認臉解鎖的內(nèi)容,經(jīng)過探索,其實利用手頭的資源我們完全自己也可以完成這樣一個過程。 本文講解了如何使用Python,基于OpenCV與Face++實現(xiàn)人臉解鎖的功能。 本文基于Python 2.7.11,Win...

    cc17 評論0 收藏0
  • Python暴力破解zip文件口令

    摘要:通過內(nèi)置的模塊實現(xiàn)對文件的解壓,加點料完成口令破解模塊基本使用使用壓縮文件創(chuàng)建一個文件對象,壓縮是需要把改為將文件寫入文件中,即將文件壓縮將文件對象關閉使用解壓文件解壓準備階段首先你需要一個壓縮文件,并且給它加上密碼,樣子長成這樣然后你就成 通過Python內(nèi)置的zipfile模塊實現(xiàn)對zip文件的解壓,加點料完成口令破解 zipfile模塊基本使用 使用zipfile壓縮文件 imp...

    hufeng 評論0 收藏0
  • 谷歌推出開源工具DeepVariant,用深度學習識別基因變異

    摘要:今天推出了一個名叫的開源工具,用深度神經(jīng)網(wǎng)絡來從測序數(shù)據(jù)中快速較精確識別堿基變異位點。今天,團隊,聯(lián)合同屬于旗下的生命科學兄弟公司,用了兩年多時間,研發(fā)出了一個名叫的開源工具,專門用深度神經(jīng)網(wǎng)絡來識別結(jié)果中測序數(shù)據(jù)里這些堿基變異位點。 Google今天推出了一個名叫DeepVariant的開源工具,用深度神經(jīng)網(wǎng)絡來從DNA測序數(shù)據(jù)中快速較精確識別堿基變異位點。學科研究的革命性進展,特別是基因...

    raledong 評論0 收藏0
  • python大佬養(yǎng)成計劃----flask應用

    摘要:將用戶登陸信息綁定數(shù)據(jù)庫要求將用戶登陸時的信息,發(fā)送至后臺與數(shù)據(jù)庫進行比對,來判斷用戶是否可登陸文件,用來創(chuàng)建遠程連接的類主程序創(chuàng)建連接判斷用戶名是否存在返回的是語句查詢結(jié)果的個數(shù)如果為,沒有查到。 將用戶登陸信息綁定數(shù)據(jù)庫 要求將用戶登陸時的信息,發(fā)送至后臺與數(shù)據(jù)庫進行比對,來判斷用戶是否可登陸 #config.py文件,用來創(chuàng)建遠程連接的類 class DB: HOST =...

    daryl 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<