日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

Python?標準庫?fileinput與文件迭代器_python

作者:wohu1104 ? 更新時間: 2022-10-27 編程語言

1. 使用 fileinput 進行迭代

fileinput 模塊可以對一個或多個文件中的內容進行迭代、遍歷等操作。該模塊的 input() 函數有點類似文件 readlines 函數,但區別明顯:

  • readlines 是一次性讀取文件中的全部內容,如果文件較大的話,會占用大量內存;
  • input 返回的則是一個迭代對象,結合 for 循環使用,典型用法如下:
import fileinput

for line in fileinput.input(filename):
    process(line)

實例:

import fileinput

for line in fileinput.input("D:/Users/data.txt"):
    print(line)

注意:input 函數有多個參數:分別設置讀取文件路徑、讀寫模式、編碼方式、緩沖區大小、備份文件擴展名等。

此外,fileinput 模塊還有很多常用的函數,這里介紹幾個最常用的。

函數名 說明:

  • fileinput.input() 返回能夠用于 for 循環遍歷的對象
  • fileinput.filename() 返回當前文件的名稱
  • fileinput.lineno() 返回當前已經讀取的行的數量(或者序號)
  • fileinput.filelineno() 回當前讀取的行的行號
  • fileinput.isfirstline() 檢查當前行是否是文件的第一行
  • fileinput.isstdin() 判斷最后一行是否從 stdin 中讀取
  • fileinput.close() 關閉隊列

2. 文件迭代器

#打開文件,一次寫入多行內容
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)
# 或者 將讀取內容轉化為字符串列表 效果類似 readlines
lines = list(f)
print(lines)
#關閉文件
f.close()

執行結果(省略空行):

content: append information1
content: append information2

3. 字典的 setdefault 方法使用舉例

如果僅當字典中不存在某個鍵值對時,才插入到字典中;如果存在,不必插入(也就不會修改鍵值對)。

這種場景,使用字典自帶方法 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,已經存在'c':3的鍵值對,所以setdefault時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

欄目分類
最近更新