Python?標(biāo)準(zhǔn)庫(kù)?fileinput與文件迭代器
1. 使用 fileinput 進(jìn)行迭代
fileinput 模塊可以對(duì)一個(gè)或多個(gè)文件中的內(nèi)容進(jìn)行迭代、遍歷等操作。該模塊的 input() 函數(shù)有點(diǎn)類似文件 readlines 函數(shù),但區(qū)別明顯:
readlines是一次性讀取文件中的全部?jī)?nèi)容,如果文件較大的話,會(huì)占用大量?jī)?nèi)存;input返回的則是一個(gè)迭代對(duì)象,結(jié)合for循環(huán)使用,典型用法如下:
import fileinput
for line in fileinput.input(filename):
process(line)實(shí)例:
import fileinput
for line in fileinput.input("D:/Users/data.txt"):
print(line)注意:input 函數(shù)有多個(gè)參數(shù):分別設(shè)置讀取文件路徑、讀寫(xiě)模式、編碼方式、緩沖區(qū)大小、備份文件擴(kuò)展名等。
此外,fileinput 模塊還有很多常用的函數(shù),這里介紹幾個(gè)最常用的。
函數(shù)名 說(shuō)明:
fileinput.input()返回能夠用于for循環(huán)遍歷的對(duì)象fileinput.filename()返回當(dāng)前文件的名稱fileinput.lineno()返回當(dāng)前已經(jīng)讀取的行的數(shù)量(或者序號(hào))fileinput.filelineno()回當(dāng)前讀取的行的行號(hào)fileinput.isfirstline()檢查當(dāng)前行是否是文件的第一行fileinput.isstdin()判斷最后一行是否從stdin中讀取fileinput.close()關(guān)閉隊(duì)列
2. 文件迭代器
#打開(kāi)文件,一次寫(xiě)入多行內(nèi)容
f = open("D:/Users/data.txt",'w')
content = ['append information1\n','append information2']
f.writelines(content)
f.close()
#打開(kāi)文件,通過(guò)文件迭代器遍歷文件
f = open("D:/Users/data.txt",'r')
for line in f:
print('content:',line)
# 或者 將讀取內(nèi)容轉(zhuǎn)化為字符串列表 效果類似 readlines
lines = list(f)
print(lines)
#關(guān)閉文件
f.close()執(zhí)行結(jié)果(省略空行):
content: append information1 content: append information2
3. 字典的 setdefault 方法使用舉例
如果僅當(dāng)字典中不存在某個(gè)鍵值對(duì)時(shí),才插入到字典中;如果存在,不必插入(也就不會(huì)修改鍵值對(duì))。
這種場(chǎng)景,使用字典自帶方法 setdefault :
In [35]: d = {'a':1,'b':2}
In [36]: r = d.setdefault('c',3) # r: 3
In [37]: r
Out[37]: 3
In [38]: d
Out[38]: {'a': 1, 'b': 2, 'c': 3}
In [39]: r = d.setdefault('c',33) # r:3,已經(jīng)存在'c':3的鍵值對(duì),所以setdefault時(shí)d無(wú)改變
In [40]: r
Out[40]: 3
In [41]: d
Out[41]: {'a': 1, 'b': 2, 'c': 3}到此這篇關(guān)于Python 標(biāo)準(zhǔn)庫(kù) fileinput與文件迭代器的文章就介紹到這了,更多相關(guān)Python fileinput 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
分析解決Python中sqlalchemy數(shù)據(jù)庫(kù)連接池QueuePool異常
這篇文章主要來(lái)給大家分析sqlalchemy數(shù)據(jù)庫(kù)連接池QueuePool的異常,給大家用詳細(xì)的圖文方式做出了解決的方案,有需要的朋友可以借鑒參考下,希望可以有所幫助2021-09-09
Python數(shù)據(jù)處理numpy.median的實(shí)例講解
下面小編就為大家分享一篇Python數(shù)據(jù)處理numpy.median的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-04-04
python3.6 tkinter實(shí)現(xiàn)屏保小程序
這篇文章主要為大家詳細(xì)介紹了python3.6 tkinter實(shí)現(xiàn)屏保小程序,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-07-07
python如何實(shí)現(xiàn)convolution neural network卷積神經(jīng)網(wǎng)絡(luò)算法
卷積神經(jīng)網(wǎng)絡(luò)(CNN)是深度學(xué)習(xí)中重要的算法之一,主要應(yīng)用于圖像識(shí)別和處理領(lǐng)域,其基本原理是模擬人類視覺(jué)系統(tǒng),通過(guò)卷積層、激活函數(shù)和池化層等組件提取圖像的特征,并通過(guò)全連接層進(jìn)行分類或其他任務(wù),CNN訓(xùn)練過(guò)程中使用大量標(biāo)記圖像數(shù)據(jù)2024-10-10
詳解Pandas與openpyxl庫(kù)的超強(qiáng)結(jié)合
Pandas絕對(duì)是Python中處理Excel最快、最好用的庫(kù),但是使用 openpyxl 的一些優(yōu)勢(shì)是能夠輕松地使用樣式、條件格式等自定義電子表格,感興趣的可以了解一下2021-09-09
Python實(shí)現(xiàn)PC屏幕截圖并自動(dòng)發(fā)送郵箱
這篇文章主要為大家詳細(xì)介紹了如何使用Python實(shí)現(xiàn)一個(gè)屏幕截圖應(yīng)用程序,可以定時(shí)截取屏幕,并將截圖通過(guò)電子郵件發(fā)送給指定的收件人,需要的可以參考下2024-12-12
pytest測(cè)試框架+allure超詳細(xì)教程
這篇文章主要介紹了pytest測(cè)試框架+allure超詳細(xì)教程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-11-11

