欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

一、介紹

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

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

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

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

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

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

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

函數(shù) 描述
input([files[, inplace[, backup]]])  幫助迭代多個(gè)輸入流中的行
filename()  返回當(dāng)前文件的名稱(chēng)
lineno()   返回(累計(jì)的)當(dāng)前行號(hào)
filelineno() 返回在當(dāng)前文件中的行號(hào)
isfirstline() 檢查當(dāng)前行是否是文件中的第一行
isstdin() 檢查最后一行是否來(lái)自sys.stdin
nextfile() 關(guān)閉當(dāng)前文件并移到下一個(gè)文件
close()   關(guān)閉序列

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

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

四、示例

1、讀取多個(gè)文件

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

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

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


# 讀取多個(gè)文件
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)

# 結(jié)果
當(dāng)前文件夾會(huì)生成a.txt.bak文件,內(nèi)容是之前的內(nèi)容,
而a.txt文件已經(jīng)被修改了,把"我"變成了"小明"

3、輸出當(dāng)前行號(hào)和行內(nèi)容

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

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

# 結(jié)果
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
# 結(jié)果
a.txt
我
是
好、
人

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

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

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

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

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

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

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

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

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

    Python基礎(chǔ)之Spyder的使用

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

    詳細(xì)分析Python collections工具庫(kù)

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

    python 留一交叉驗(yàn)證的實(shí)例

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

    Python Deque 模塊使用詳解

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

    Python實(shí)現(xiàn)定時(shí)自動(dòng)關(guān)閉的tkinter窗口方法

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

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

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

    Python的iOS自動(dòng)化打包實(shí)例代碼

    這篇文章主要給大家介紹了關(guān)于Python的iOS自動(dòng)化打包的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-11-11

最新評(píng)論