91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用python3怎么讀取文件指定行

發布時間:2021-05-24 15:37:26 來源:億速云 閱讀:255 作者:Leah 欄目:開發技術

使用python3怎么讀取文件指定行?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

行遍歷實現

在python中如果要將一個文件完全加載到內存中,通過file.readlines()即可,但是在文件占用較高時,我們是無法完整的將文件加載到內存中的,這時候就需要用到python的file.readline()進行迭代式的逐行讀取:

filename = 'hello.txt'

with open(filename, 'r') as file:
    line = file.readline()
    counts = 1
    while line:
        if counts >= 50000000:
            break
        line = file.readline()
        counts += 1

這里我們的實現方式是先用一個with語句打開一個文件,然后用readline()函數配合while循環逐行加載,最終通過一個序號標記來結束循環遍歷,輸出文件第50000000行的內容。該代碼的執行效果如下:

dechin@ubuntu2004:~/projects/gitlab/dechin/$ time python3 get_line.py 

real    0m10.359s
user    0m10.062s
sys     0m0.296s

可以看到這里的耗時為10s多一些。

linecache實現

雖然在python的readline函數中并沒有實現讀取指定行內容的方案,但是在另一個庫linecache中是實現了的,由于使用的方式較為簡單,這里直接放上代碼示例供參考:

filename = 'hello.txt'

import linecache
text = linecache.getline(filename, 50000000)

該代碼的執行結果如下:

dechin@ubuntu2004:~/projects/gitlab/dechin/$ time python3 get_line.py 

real    0m11.904s
user    0m5.672s
sys     0m6.231s

雖然在實現方式上簡化了許多,但是我們發現這個實現的用時超過了11s,還不如我們自己手動實現的循環遍歷方案。因此如果是對于性能有一定要求的場景,是不建議采用這個方案的。

命令行sed獲取

我們知道用Linux系統本身自帶的sed指令也是可以獲取到文件指定行或者是指定行范圍的數據的,其執行指令為:sed -n 50000000p filename即表示讀取文件的第50000000行的內容。同時結合python的話,我們可以在python代碼中執行系統指令并獲取輸出結果:

filename = 'hello.txt'

import os
result = os.popen('sed -n {}p {}'.format(50000000, filename)).read()

需要注意的是,如果直接運行os.system()是沒有返回值的,只有os.popen()是有返回值的,并且需要在尾巴加上一個read()的選項。該代碼的執行結果如下:

dechin@ubuntu2004:~/projects/gitlab/dechin/$ time python3 get_line.py 

real    0m2.532s
user    0m0.032s
sys     0m0.020s

可以看到直接使用sed指令的執行速度很快,但是用這種方法并不是一本萬利的,比如以下這個例子:

filename = 'hello.txt'

import os
result = os.popen('sed -n {}p {}'.format(500, filename)).read()

我們把讀取第50000000行內容改為讀取第500行的內容,再運行一次程序:

dechin@ubuntu2004:~/projects/gitlab/dechin/$ time python3 get_line.py 

real    0m2.540s
user    0m0.037s
sys     0m0.013s

python主要應用領域有哪些

1、云計算,典型應用OpenStack。2、WEB前端開發,眾多大型網站均為Python開發。3.人工智能應用,基于大數據分析和深度學習而發展出來的人工智能本質上已經無法離開python。4、系統運維工程項目,自動化運維的標配就是python+Django/flask。5、金融理財分析,量化交易,金融分析。6、大數據分析。

看完上述內容,你們掌握使用python3怎么讀取文件指定行的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

威信县| 武宁县| 平泉县| 邵阳县| 屯昌县| 芦山县| 全南县| 扎兰屯市| 宁海县| 贺兰县| 兴文县| 秦皇岛市| 亚东县| 海兴县| 彭泽县| 岑巩县| 定兴县| 邹城市| 神木县| 棋牌| 佳木斯市| 鹤峰县| 佛冈县| 株洲市| 广水市| 五莲县| 临猗县| 左云县| 临汾市| 志丹县| 新兴县| 江都市| 石家庄市| 台东县| 信宜市| 南充市| 长兴县| 墨竹工卡县| 新郑市| 从江县| 瓦房店市|