Python?標(biāo)準(zhǔn)庫?fileinput與文件迭代器
1. 使用 fileinput 進(jìn)行迭代
fileinput
模塊可以對一個(gè)或多個(gè)文件中的內(nèi)容進(jìn)行迭代、遍歷等操作。該模塊的 input()
函數(shù)有點(diǎn)類似文件 readlines
函數(shù),但區(qū)別明顯:
readlines
是一次性讀取文件中的全部內(nèi)容,如果文件較大的話,會(huì)占用大量內(nèi)存;input
返回的則是一個(gè)迭代對象,結(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è)置讀取文件路徑、讀寫模式、編碼方式、緩沖區(qū)大小、備份文件擴(kuò)展名等。
此外,fileinput
模塊還有很多常用的函數(shù),這里介紹幾個(gè)最常用的。
函數(shù)名 說明:
fileinput.input()
返回能夠用于for
循環(huán)遍歷的對象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. 文件迭代器
#打開文件,一次寫入多行內(nèi)容 f = open("D:/Users/data.txt",'w') content = ['append information1\n','append information2'] f.writelines(content) f.close() #打開文件,通過文件迭代器遍歷文件 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è)鍵值對時(shí),才插入到字典中;如果存在,不必插入(也就不會(huì)修改鍵值對)。
這種場景,使用字典自帶方法 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的鍵值對,所以setdefault時(shí)d無改變 In [40]: r Out[40]: 3 In [41]: d Out[41]: {'a': 1, 'b': 2, 'c': 3}
到此這篇關(guān)于Python 標(biāo)準(zhǔn)庫 fileinput與文件迭代器的文章就介紹到這了,更多相關(guān)Python fileinput 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用Python中的greenlet包實(shí)現(xiàn)并發(fā)編程的入門教程
這篇文章主要介紹了使用Python中的greenlet包實(shí)現(xiàn)并發(fā)編程的入門教程,Python由于GIL的存在并不能實(shí)現(xiàn)真正的多線程并發(fā),greenlet可以做到一個(gè)相對的替換方案,需要的朋友可以參考下2015-04-04Python虛擬環(huán)境庫virtualenvwrapper安裝及使用
這篇文章主要介紹了Python虛擬環(huán)境庫virtualenvwrapper安裝及使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06Python中將字典轉(zhuǎn)換為XML以及相關(guān)的命名空間解析
這篇文章主要介紹了Python中將字典轉(zhuǎn)換為XML以及相關(guān)的命名空間解析,包括使用字典創(chuàng)建XML等知識(shí),需要的朋友可以參考下2015-10-10Python教程使用Chord包實(shí)現(xiàn)炫彩弦圖示例
在可視化中,有時(shí)候會(huì)使用到弦圖(Chord Diagram)來表示事物之間關(guān)系,本篇文章教大家如何使用Chord包實(shí)現(xiàn)炫彩弦圖,有需要的朋友可以借鑒參考下,希望大家多多進(jìn)步,早日升職加薪2021-09-09