欢迎访问宙启技术站
智能推送

使用fileinput模块在Python中处理多个文件的输入和输出

发布时间:2023-12-15 20:11:55

fileinput模块是Python标准库中用于处理多个文件输入和输出的工具。它提供了一个简单且高效的方式来处理多个文件的操作,无需手动打开和关闭文件。

使用fileinput模块可以方便地读取多个文件的内容、逐行处理文件内容、按行写入或替换文件内容。

下面是一个使用fileinput模块处理多个文件输入的例子:

import fileinput

# 读取多个文件的内容
for line in fileinput.input(files=('file1.txt', 'file2.txt', 'file3.txt')):
    # 处理每一行的内容
    print(line.rstrip())

# 读取多个文件的内容,并逐行替换其中的文本
for line in fileinput.input(files=('file1.txt', 'file2.txt', 'file3.txt'), inplace=True):
    # 替换每一行中的文本
    print(line.replace('old_text', 'new_text'), end='')

# 读取多个文件的内容,并写入到一个新的文件中
with open('output.txt', 'w') as outfile:
    for line in fileinput.input(files=('file1.txt', 'file2.txt', 'file3.txt')):
        # 写入每一行的内容到新文件中
        outfile.write(line)

以上代码中,首先导入了fileinput模块。然后使用fileinput.input函数来读取多个文件的内容,通过传入files参数指定要处理的文件列表。在 个例子中,我们仅读取文件的内容并进行处理,通过使用rstrip方法去掉行末的换行符后将其打印出来。

在第二个例子中,我们在读取文件内容的同时使用inplace参数来进行逐行替换。将每一行中的"old_text"替换为"new_text"并写回原文件。

在第三个例子中,我们使用with语句打开一个新文件output.txt,并将读取到的多个文件的内容逐行写入到新文件中。

fileinput模块还有其他一些有用的函数和属性,例如filename可以获取当前处理的文件名,lineno可以获取当前处理的行号等。

总结起来,fileinput模块提供了一个简单而高效的方式来处理多个文件的输入和输出。通过使用它,我们可以轻松地读取和写入多个文件的内容,并对其进行逐行处理。