網(wǎng)站首頁 編程語言 正文
1. 使用 fileinput 進(jìn)行迭代
fileinput
模塊可以對(duì)一個(gè)或多個(gè)文件中的內(nèi)容進(jìn)行迭代、遍歷等操作。該模塊的 input()
函數(shù)有點(diǎn)類似文件 readlines
函數(shù),但區(qū)別明顯:
-
readlines
是一次性讀取文件中的全部內(nèi)容,如果文件較大的話,會(huì)占用大量內(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è)置讀取文件路徑、讀寫模式、編碼方式、緩沖區(qū)大小、備份文件擴(kuò)展名等。
此外,fileinput
模塊還有很多常用的函數(shù),這里介紹幾個(gè)最常用的。
函數(shù)名 說明:
-
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. 文件迭代器
#打開文件,一次寫入多行內(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è)鍵值對(duì)時(shí),才插入到字典中;如果存在,不必插入(也就不會(huì)修改鍵值對(duì))。
這種場景,使用字典自帶方法 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無改變 In [40]: r Out[40]: 3 In [41]: d Out[41]: {'a': 1, 'b': 2, 'c': 3}
原文鏈接:https://blog.csdn.net/wohu1104/article/details/125055526
相關(guān)推薦
- 2022-12-14 Android?liveData與viewBinding使用教程_Android
- 2023-12-13 pyinstaller打包exe時(shí)報(bào)錯(cuò)問題記錄[makespec options not valid
- 2022-04-08 從頭學(xué)習(xí)C語言之指針和數(shù)組_C 語言
- 2022-09-26 數(shù)據(jù)庫多表聯(lián)查的方式
- 2023-01-20 React?Redux管理庫示例詳解_React
- 2022-05-23 ES6新增關(guān)鍵字let和const介紹_基礎(chǔ)知識(shí)
- 2022-10-19 Android?webview加載H5方法詳細(xì)介紹_Android
- 2022-09-27 Android?JetPack組件的支持庫Databinding詳解_Android
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支