Python中很少人會(huì)用的Fileinput模塊詳解
當(dāng)涉及到文件處理和輸入流時(shí),Python中的fileinput模塊是一個(gè)非常有用的工具。fileinput模塊允許我們輕松地迭代處理多個(gè)文件,同時(shí)還可以處理標(biāo)準(zhǔn)輸入流。以下是Python中fileinput模塊的五個(gè)常見(jiàn)用法,每個(gè)用法都附帶有代碼和輸出示例。
1. 逐行迭代文件
fileinput模塊可以用于逐行迭代處理文件中的內(nèi)容。下面的例子演示了如何逐行讀取文件,并打印每行的內(nèi)容:
import fileinput
for line in fileinput.input('data.txt'):
print(line, end='')
輸出:
Line 1
Line 2
Line 3
2. 替換文件中的文本
fileinput模塊還可以用于在文件中替換指定的文本。下面的例子演示了如何將文件中的"old"替換為"new":
import fileinput
for line in fileinput.input('data.txt', inplace=True):
line = line.replace('old', 'new')
print(line, end='')
輸出(文件data.txt被修改):
Line 1
Line 2
Line 3
3. 處理多個(gè)文件
fileinput模塊可以處理多個(gè)文件,而不僅限于單個(gè)文件。下面的例子演示了如何逐行讀取多個(gè)文件的內(nèi)容:
import fileinput
for line in fileinput.input(['file1.txt', 'file2.txt', 'file3.txt']):
print(line, end='')
輸出:
File 1 Line 1
File 1 Line 2
File 1 Line 3
File 2 Line 1
File 2 Line 2
File 2 Line 3
File 3 Line 1
File 3 Line 2
File 3 Line 3
4. 記錄當(dāng)前文件名和行號(hào)
fileinput模塊可以記錄當(dāng)前處理的文件名和行號(hào)。下面的例子演示了如何打印每行的文件名和行號(hào):
import fileinput
for line in fileinput.input('data.txt'):
print(f'File: {fileinput.filename()}, Line: {fileinput.filelineno()}, Content: {line}', end='')
輸出:
File: data.txt, Line: 1, Content: Line 1
File: data.txt, Line: 2, Content: Line 2
File: data.txt, Line: 3, Content: Line 3
5. 處理標(biāo)準(zhǔn)輸入流
除了處理文件,fileinput模塊還可以處理標(biāo)準(zhǔn)輸入流。下面的例子演示了如何讀取標(biāo)準(zhǔn)輸入中的內(nèi)容:
import fileinput
for line in fileinput.input():
print(line, end='')
輸入(從標(biāo)準(zhǔn)輸入輸入):
Input Line 1
Input Line 2
Input Line 3
輸出:
Input Line 1
Input Line 2
Input Line 3
以上是Python中fileinput模塊的五個(gè)常見(jiàn)用法示例。通過(guò)靈活使用fileinput模塊,您可以輕松地處理文件和輸入流,并進(jìn)行各種文本操作。無(wú)論是逐行迭代、替換文本還是處理多個(gè)文件,fileinput模塊為文件處理提供了強(qiáng)大而便捷的功能。