91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python文件處理fileinput使用方法詳解

發布時間:2020-10-03 13:46:56 來源:腳本之家 閱讀:219 作者:我用python寫Bug 欄目:開發技術

這篇文章主要介紹了python文件處理fileinput使用方法詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

一、介紹

fileinput模塊可以對一個或多個文件中的內容進行迭代、遍歷等操作,我們常用的open函數是對一個文件進行讀寫操作。

fileinput模塊的input()函數比open函數更高效和好用,體現在:

input()函數生成一個迭代器,保證了在遇到大文件的讀取時不會占用太大的內存。
用fileinput對文件進行循環遍歷,格式化輸出,查找、替換等操作,還能獲取每一行的行號等等,非常方便。

二、fileinput讀取文件函數input的使用格式

fileinput.input (files='filename', inplace=False, backup='', bufsize=0, mode='r', openhook=None)

files:     # 文件的路徑列表,默認是stdin方式,多文件['1.txt','2.txt',...]
inplace:    # 是否將標準輸出的結果寫回文件,默認不取代
backup:    # 備份文件的擴展名,只指定擴展名,如.bak。如果該文件的備份文件已存在,則會自動覆蓋。
bufsize:    # 緩沖區大小,默認為0,如果文件很大,可以修改此參數,一般默認即可
mode:      # 讀寫模式,默認為只讀
openhook:    # 該鉤子用于控制打開的所有文件,比如說編碼方式等;

三、fileinput中的常用函數

函數 描述
input([files[, inplace[, backup]]])  幫助迭代多個輸入流中的行
filename()  返回當前文件的名稱
lineno()   返回(累計的)當前行號
filelineno() 返回在當前文件中的行號
isfirstline() 檢查當前行是否是文件中的第一行
isstdin() 檢查最后一行是否來自sys.stdin
nextfile() 關閉當前文件并移到下一個文件
close()   關閉序列

fileinput.input是最重要的函數,它返回一個迭代器對象,如果要處理多個文件,可以向這個函數提供一個或多個文件名。

還可將參數inplace設置為True(inplace=True),對于你訪問的每一行,都需打印出替代內容,這些內容將被寫回到當前輸入文件中,此時可選參數backup用于給從原始文件創建的備份文件指定擴展名。

四、示例

1、讀取多個文件

# a.txt文件的內容
"""
我
是
好
人
"""

# b.txt文件的內容
"""
他
是
壞
人
"""

# 讀取一個文件
for line in fileinput.input("a.txt"):
  print(line)


# 讀取多個文件
for line in fileinput.input(["a.txt", "b.txt"]):
  print(line)

2、修改文件并備份原文件

# -*_ coding:utf-8 -*-
import fileinput
for line in fileinput.input("a.txt", backup=".bak", inplace=True):
  line = line.replace("我", "小明")
  print(line)

# 結果
當前文件夾會生成a.txt.bak文件,內容是之前的內容,
而a.txt文件已經被修改了,把"我"變成了"小明"

3、輸出當前行號和行內容

# -*_ coding:utf-8 -*-
import fileinput

for line in fileinput.input("a.txt"):
  lineno = fileinput.filelineno()
  print lineno, line

# 結果
1 我
2 是
3 好、
4 人

4、輸出文件名

# -*_ coding:utf-8 -*-
import fileinput
for line in fileinput.input("a.txt"):
  # 在第一行前面先輸出文件名
  if fileinput.isfirstline():
    print fileinput.filename()
  print line
# 結果
a.txt
我
是
好、
人

其他函數,都是類似的使用方法,這里就不全部介紹了。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

曲周县| 阳东县| 普洱| 通城县| 洛宁县| 佳木斯市| 满洲里市| 长武县| 濮阳县| 长子县| 林周县| 固镇县| 浦北县| 富锦市| 苍山县| 正阳县| 博白县| 揭阳市| 南部县| 华阴市| 淳化县| 澄江县| 安陆市| 云和县| 闽清县| 红桥区| 鲜城| 盈江县| 乐业县| 石门县| 潞城市| 乌兰浩特市| 行唐县| 安康市| 滨州市| 南投市| 聊城市| 古蔺县| 锡林郭勒盟| 蒲城县| 友谊县|