📅  最后修改于: 2023-12-03 15:19:23.686000             🧑  作者: Mango
在Python中,fileinput
模块提供了一种便捷的方式来读取多个文件,而且还可以非常容易地集成到脚本中。其中,fileinput.input()
方法是常用于这种场景的。
fileinput.input()
方法按照文件名列表或标准输入流的方式来读取数据,并将它们视为一个文件。这意味着用户可以对所有这些文件执行相同的操作,就像操作一个单独的文件一样。
在这个方法中,有一些可选的参数可以控制文件输入流的行为。例如,inplace
参数可以用于直接更改输入文件,而不是将更改输出到标准输出。
在使用fileinput.input()
之后,用户可以像迭代单个文件一样迭代所有文件。每次迭代都返回当前文件的一行。
以下是fileinput.input()
方法的语法:
fileinput.input(files=None, inplace=False, backup='', bufsize=0, mode='r', openhook=None)
以下是参数说明:
files
:包含文件名的列表。如果没有提供列表,则将从标准输入流中读取数据。inplace
:如果设置为True,将直接对文件进行更改。backup
:如果设置了该参数的值,则会将文件备份为指定的文件扩展名。bufsize
:缓冲区的大小。mode
:打开文件的模式。openhook
:设置挂钩函数。以下代码示例演示了如何使用fileinput.input()
方法来遍历多个文件:
import fileinput
# 处理一个或多个文件
for line in fileinput.input(['file1.txt', 'file2.txt']):
# 操作每一行数据
print(line.strip())
# 处理标准输入流
for line in fileinput.input():
# 操作每一行数据
print(line.strip())
在上面的例子中,使用fileinput.input(['file1.txt', 'file2.txt'])
方法来打开file1.txt
和file2.txt
两个文件进行处理。
接下来,我们可以通过迭代器方式访问每个文件中的行,就像访问单个文件一样。
同时,如果我们不提供文件名参数,则会从标准输入流中读取数据,并进行与上述相同的操作。
在Python中,fileinput.input()
方法提供了一个便捷的方式来处理多个文件或标准输入流的数据。它非常适合需要对多个文件执行相同操作的情况,而不必重复相同的代码。
此外,该方法支持许多其他非常有用的参数,因此可以为用户提供定制文件输入流的灵活性。