日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

python3讀取文件指定行的三種方法

瀏覽:66日期:2022-06-18 15:40:55
目錄行遍歷實(shí)現(xiàn)linecache實(shí)現(xiàn)命令行sed獲取總結(jié)概要行遍歷實(shí)現(xiàn)

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

filename = ’hello.txt’with open(filename, ’r’) as file: line = file.readline() counts = 1 while line:if counts >= 50000000: breakline = file.readline()counts += 1

這里我們的實(shí)現(xiàn)方式是先用一個(gè)with語(yǔ)句打開(kāi)一個(gè)文件,然后用readline()函數(shù)配合while循環(huán)逐行加載,最終通過(guò)一個(gè)序號(hào)標(biāo)記來(lái)結(jié)束循環(huán)遍歷,輸出文件第50000000行的內(nèi)容。該代碼的執(zhí)行效果如下:

dechin@ubuntu2004:~/projects/gitlab/dechin/$ time python3 get_line.py real 0m10.359suser 0m10.062ssys 0m0.296s

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

linecache實(shí)現(xiàn)

雖然在python的readline函數(shù)中并沒(méi)有實(shí)現(xiàn)讀取指定行內(nèi)容的方案,但是在另一個(gè)庫(kù)linecache中是實(shí)現(xiàn)了的,由于使用的方式較為簡(jiǎn)單,這里直接放上代碼示例供參考:

filename = ’hello.txt’import linecachetext = linecache.getline(filename, 50000000)

該代碼的執(zhí)行結(jié)果如下:

dechin@ubuntu2004:~/projects/gitlab/dechin/$ time python3 get_line.py real 0m11.904suser 0m5.672ssys 0m6.231s

雖然在實(shí)現(xiàn)方式上簡(jiǎn)化了許多,但是我們發(fā)現(xiàn)這個(gè)實(shí)現(xiàn)的用時(shí)超過(guò)了11s,還不如我們自己手動(dòng)實(shí)現(xiàn)的循環(huán)遍歷方案。因此如果是對(duì)于性能有一定要求的場(chǎng)景,是不建議采用這個(gè)方案的。

命令行sed獲取

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

filename = ’hello.txt’import osresult = os.popen(’sed -n {}p {}’.format(50000000, filename)).read()

需要注意的是,如果直接運(yùn)行os.system()是沒(méi)有返回值的,只有os.popen()是有返回值的,并且需要在尾巴加上一個(gè)read()的選項(xiàng)。該代碼的執(zhí)行結(jié)果如下:

dechin@ubuntu2004:~/projects/gitlab/dechin/$ time python3 get_line.py real 0m2.532suser 0m0.032ssys 0m0.020s

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

filename = ’hello.txt’import osresult = os.popen(’sed -n {}p {}’.format(500, filename)).read()

我們把讀取第50000000行內(nèi)容改為讀取第500行的內(nèi)容,再運(yùn)行一次程序:

dechin@ubuntu2004:~/projects/gitlab/dechin/$ time python3 get_line.py real 0m2.540suser 0m0.037ssys 0m0.013s

然而我們發(fā)現(xiàn)這個(gè)速度并沒(méi)有因?yàn)橐x取的行數(shù)減少了而變少,而是幾乎保持不變的。

總結(jié)概要

本文通過(guò)4個(gè)測(cè)試案例分析了在python中讀取文件指定行內(nèi)容的方案,并得到了一些運(yùn)行耗時(shí)的數(shù)據(jù)。從需求上來(lái)說(shuō),如果是對(duì)于小規(guī)模的數(shù)據(jù),比如幾百行規(guī)模的數(shù)據(jù),建議使用readline循環(huán)遍歷來(lái)操作,速度也相當(dāng)不錯(cuò),或者是linecache中的函數(shù)實(shí)現(xiàn)也是可以的,甚至可以直接用readlines將整個(gè)文本內(nèi)容加載到內(nèi)存中。但是對(duì)于數(shù)據(jù)規(guī)模比較大的場(chǎng)景,比如超過(guò)了千萬(wàn)行的級(jí)別,那么使用sed指令的方式對(duì)指定行內(nèi)容進(jìn)行讀取的方式,應(yīng)該是所有方式中最快速的。

本文首發(fā)鏈接為:https://www.cnblogs.com/dechinphy/p/lbl.html

作者ID:DechinPhy

以上就是python3讀取文件指定行的三種方法的詳細(xì)內(nèi)容,更多關(guān)于python讀取文件指定行的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Python 編程
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
精品一区二区三区亚洲| 欧美国产极品| 中文字幕日韩高清在线| 国产伦久视频在线观看| 欧美一区影院| 久久不见久久见免费视频7| 亚洲欧美在线综合| 久久婷婷丁香| 中文在线免费视频| 久久精品色播| 黄色欧美在线| 激情不卡一区二区三区视频在线| 亚洲精品少妇| 国产欧美在线| 欧洲在线一区| 欧美大黑bbbbbbbbb在线| 亚洲福利久久| 欧美精品一线| 国产视频一区免费看| 水蜜桃精品av一区二区| 红杏一区二区三区| 色爱av综合网| 亚洲少妇在线| 日韩在线视频一区二区三区| 视频一区二区欧美| 亚洲精选久久| 欧美一级全黄| 国产免费久久| japanese国产精品| 日韩av网站在线观看| 你懂的亚洲视频| 亚洲深夜视频| 一区二区国产在线观看| zzzwww在线看片免费| 亚洲激精日韩激精欧美精品| 亚洲精品少妇| 91青青国产在线观看精品| 久久亚洲成人| 国产一区二区精品| 国产极品一区| 韩国三级一区| 成人午夜亚洲| 国产精品99一区二区| 久久精品网址| 日韩av首页| 麻豆成人91精品二区三区| 久久精品一区二区国产| 精品三级在线观看视频| 九九色在线视频| 久久久久网站| 欧美激情另类| 日韩av二区在线播放| 黄色成人在线网址| 国产午夜精品一区二区三区欧美| 欧美va天堂在线| 久久国产精品亚洲77777| 女同性一区二区三区人了人一 | 日韩精品a在线观看91| 精品国产乱码久久久久久樱花| 首页欧美精品中文字幕| 伊人久久av| 欧美不卡高清一区二区三区| 亚洲精品极品少妇16p| 日韩高清三区| 中文字幕在线看片| 欧美精品一线| 国产 日韩 欧美 综合 一区| 高清不卡一区| 97国产成人高清在线观看| 欧美不卡高清一区二区三区| 视频一区二区国产| 99精品视频精品精品视频| 欧美男人天堂| 老司机精品在线| 欧美激情三区| 国产亚洲一卡2卡3卡4卡新区| aa亚洲婷婷| 国内精品99| 福利一区和二区| 日韩.com| 欧美激情福利| 国产区精品区| 国产欧美日韩免费观看| 日韩在线成人| 国产情侣一区| 欧美一级专区| 在线 亚洲欧美在线综合一区| 日韩激情啪啪| 久久久久中文| 国产探花一区| 黄色欧美日韩| 精品国产亚洲一区二区三区在线 | 欧美网站在线| 亚洲神马久久| 999国产精品999久久久久久| 日韩欧美网址| 精品一区二区三区中文字幕| 男女性色大片免费观看一区二区 | av不卡在线看| 激情综合婷婷| 日韩一区免费| 好看的av在线不卡观看| 你懂的亚洲视频| 免费一级片91| 亚洲精品在线观看91| 国产精品嫩模av在线| 91综合网人人| 麻豆高清免费国产一区| 亚洲一区二区三区久久久| 欧美成人a交片免费看| 久久亚洲黄色| 亚洲综合激情在线| 亚洲播播91| 午夜在线播放视频欧美| 欧美精品三级在线| 亚洲免费网址| 精品国产亚洲日本| 国产精品日韩久久久| 日本欧美不卡| 精品免费视频| 成人污污视频| 欧美久久天堂| 国产精品调教| 日韩av在线免费观看不卡| 蜜桃一区二区三区在线观看| 国产一级成人av| 亚洲黄色在线| 日韩一区二区中文| 久久青青视频| 国产精品亚洲综合在线观看| 亚洲免费资源| 午夜亚洲精品| 亚洲精品99| 欧美精品一区二区三区精品| 99久久九九| 日韩欧美另类一区二区| 中文字幕免费精品| 99成人超碰| 亚洲激情二区| 日韩高清电影一区| 久久午夜精品| 国产精品精品| 久久精品伊人| www.com.cn成人| 欧洲一级精品| bbw在线视频| 色一区二区三区四区| 国产中文欧美日韩在线| 免费在线欧美黄色| 国产精品成久久久久| 国产a久久精品一区二区三区| 日韩高清一级| 国产精品羞羞答答在线观看| 日韩福利在线观看| 中文一区一区三区免费在线观| 91久久中文| 日韩av在线中文字幕| 精品国产鲁一鲁****| 蜜桃视频在线观看一区二区| 国产精品115| 国产精品黄网站| 日本中文字幕不卡| 日韩欧美高清一区二区三区| 今天的高清视频免费播放成人| 欧洲一区二区三区精品| 国产美女高潮在线观看| 青青草精品视频| 国产精品日本一区二区不卡视频| 国产精品久久久久久久久久齐齐| 国产欧美69| 日本不卡视频在线观看| 日韩午夜电影| 欧美一级一区| 国产极品嫩模在线观看91精品| 激情黄产视频在线免费观看| 群体交乱之放荡娇妻一区二区| 1024精品久久久久久久久| 亚洲一区二区三区无吗| 欧美一区成人| 欧美日韩一区二区综合| 69堂免费精品视频在线播放| 久久国产直播| 久久久久网站| 国产中文在线播放| 国产一区二区三区精品在线观看 | 国产精品日本一区二区不卡视频| 99综合视频| 久久高清国产| 毛片不卡一区二区| 欧美精品激情| 国产欧美91| 99在线精品免费视频九九视| 国产精品午夜一区二区三区| 精品一区免费| 日韩高清在线不卡| 香蕉国产精品| 一区在线视频观看| 中文字幕av亚洲精品一部二部 | 欧美手机在线| 欧美亚洲国产一区|