亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

 更新時間:2020年01月02日 10:19:57   作者:我用python寫B(tài)ug  
這篇文章主要介紹了python文件處理fileinput使用方法詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

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

一、介紹

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

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

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

二、fileinput讀取文件函數(shù)input的使用格式

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

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

三、fileinput中的常用函數(shù)

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

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

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

四、示例

1、讀取多個文件

# a.txt文件的內(nèi)容
"""
我
是
好
人
"""

# b.txt文件的內(nèi)容
"""
他
是
壞
人
"""

# 讀取一個文件
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文件,內(nèi)容是之前的內(nèi)容,
而a.txt文件已經(jīng)被修改了,把"我"變成了"小明"

3、輸出當前行號和行內(nèi)容

# -*_ 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
我
是
好、
人

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

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Python中的深拷貝和淺拷貝詳解

    Python中的深拷貝和淺拷貝詳解

    這篇文章主要介紹了Python中的深拷貝和淺拷貝詳解,本文講解了變量-對象-引用、可變對象-不可變對象、拷貝等內(nèi)容,需要的朋友可以參考下
    2015-06-06
  • 利用Python獲取趕集網(wǎng)招聘信息前篇

    利用Python獲取趕集網(wǎng)招聘信息前篇

    這篇文章主要為大家分享了如何利用Python獲取趕集網(wǎng)招聘信息的前一篇內(nèi)容,感興趣的小伙伴們可以參考一下
    2016-04-04
  • spyder 在控制臺(console)執(zhí)行python文件,debug python程序方式

    spyder 在控制臺(console)執(zhí)行python文件,debug python程序方式

    這篇文章主要介紹了spyder 在控制臺(console)執(zhí)行python文件,debug python程序方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • Python基礎之Spyder的使用

    Python基礎之Spyder的使用

    Spyder是一個用于科學計算的使用Python編程語言的集成開發(fā)環(huán)境(IDE),它結合了綜合開發(fā)工具的高級編輯、分析、調(diào)試等功能,需要的朋友可以參考下
    2023-05-05
  • 詳細分析Python collections工具庫

    詳細分析Python collections工具庫

    這篇文章主要介紹了詳解Python collections工具庫的相關資料,文中講解非常細致,代碼幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-07-07
  • python 留一交叉驗證的實例

    python 留一交叉驗證的實例

    這篇文章主要介紹了python 留一交叉驗證的實例代碼,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • Python Deque 模塊使用詳解

    Python Deque 模塊使用詳解

    Deque模塊是Python標準庫collections中的一項. 它提供了兩端都可以操作的序列, 這意味著, 你可以在序列前后都執(zhí)行添加或刪除.
    2014-07-07
  • Python實現(xiàn)定時自動關閉的tkinter窗口方法

    Python實現(xiàn)定時自動關閉的tkinter窗口方法

    今天小編就為大家分享一篇Python實現(xiàn)定時自動關閉的tkinter窗口方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-02-02
  • python使用pika庫調(diào)用rabbitmq交換機模式詳解

    python使用pika庫調(diào)用rabbitmq交換機模式詳解

    這篇文章主要介紹了python使用pika庫調(diào)用rabbitmq交換機模式詳解,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,感興趣的小伙伴可以參考一下
    2022-08-08
  • Python的iOS自動化打包實例代碼

    Python的iOS自動化打包實例代碼

    這篇文章主要給大家介紹了關于Python的iOS自動化打包的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-11-11

最新評論