fileinput是Python内置模块之一,它提供了一种方便的方式来迭代处理多个文件或标准输入。使用fileinput模块,可以很容易地遍历多个文件的所有行,而不必手动打开和关闭每个文件。
fileinput模块中最常用的函数是input(),它可以迭代处理多个文件或标准输入。它的用法是将文件名作为参数传递给input()函数,然后使用for循环来处理每一行。input()函数返回的是一个可迭代的对象,它可以产生所有输入文件的行。
下面是一个简单的示例,演示如何使用fileinput模块迭代处理多个文件:
import fileinput
for line in fileinput.input(['file1.txt', 'file2.txt']):
print(line.rstrip())
上面的代码将打开file1.txt和file2.txt两个文件,并逐行读取它们的内容,然后输出到控制台。rstrip()函数用于删除每行末尾的换行符。
如果不传递参数给input()函数,它将默认从标准输入中读取数据。此外,fileinput模块还提供了一些其他函数,例如filename()和lineno(),可以用来获取当前处理的文件名和行号。
另外,fileinput模块还可以方便地用于修改文件。默认情况下,input()函数只读取文件的内容,如果要写入文件,则需要使用fileinput.output()函数。该函数的用法与input()函数类似,但是它需要设置inplace=True参数以启用原地修改。下面是一个简单的示例,演示如何使用fileinput模块来替换文件中的所有单词hello为world:
import fileinput
for line in fileinput.input('file.txt', inplace=True):
line = line.replace('hello', 'world')
print(line, end='')
上面的代码将打开file.txt文件,并将其中所有单词hello替换为world。原地修改意味着不需要创建新文件,而是在原始文件中进行修改。由于inplace=True参数的设置,输出将被重定向到原始文件中。最后,使用print()函数将修改后的行写入文件中。注意,print()函数必须以end=''的形式调用,以确保每行不会被自动换行。
fileinput模块提供了一个方便的方式来迭代处理多个文件或标准输入,并且可以用于读取和修改文件。
本文链接:http://task.lmcjl.com/news/3784.html