当涉及到文件处理和输入流时,Python中的fileinput模块是一个非常有用的工具。fileinput模块允许我们轻松地迭代处理多个文件,同时还可以处理标准输入流。以下是Python中fileinput模块的五个常见用法,每个用法都附带有代码和输出示例。
1. 逐行迭代文件
fileinput模块可以用于逐行迭代处理文件中的内容。下面的例子演示了如何逐行读取文件,并打印每行的内容:
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. 处理多个文件
fileinput模块可以处理多个文件,而不仅限于单个文件。下面的例子演示了如何逐行读取多个文件的内容:
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. 记录当前文件名和行号
fileinput模块可以记录当前处理的文件名和行号。下面的例子演示了如何打印每行的文件名和行号:
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. 处理标准输入流
除了处理文件,fileinput模块还可以处理标准输入流。下面的例子演示了如何读取标准输入中的内容:
import fileinput
for line in fileinput.input():
print(line, end='')
输入(从标准输入输入):
Input Line 1
Input Line 2
Input Line 3
输出:
Input Line 1
Input Line 2
Input Line 3
以上是Python中fileinput模块的五个常见用法示例。通过灵活使用fileinput模块,您可以轻松地处理文件和输入流,并进行各种文本操作。无论是逐行迭代、替换文本还是处理多个文件,fileinput模块为文件处理提供了强大而便捷的功能。