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

在Python中使用fileinput模块进行文件读取和处理

发布时间:2023-12-15 20:08:43

在Python中,使用fileinput模块可以方便地进行文件的读取和处理。fileinput模块提供了一个FileInput类,可以用于遍历多个文件,并支持在文件中插入和替换文本。下面是使用fileinput模块进行文件读取和处理的示例代码。

首先,需要导入fileinput模块:

import fileinput

文件读取部分:

1. 遍历多个文件:

for line in fileinput.input(files=['file1.txt', 'file2.txt', 'file3.txt']):
    # 处理每一行数据
    print(line)

通过传入files参数,可以遍历多个文件。在循环中,可以对每一行数据进行处理。如果不传入files参数,则默认读取标准输入。

2. 逐行读取文件:

for line in fileinput.input('file.txt'):
    # 处理每一行数据
    print(line)

可以直接传入待读取的文件名,遍历逐行读取文件内容。

文件处理部分:

1. 在文件中插入文本:

with fileinput.input('file.txt', inplace=True) as f:
    for line in f:
        # 在每一行的开头插入文本
        print('inserted text', line, end='')

通过将参数inplace设置为True,可以直接修改原始文件。使用with关键字可以确保在退出文件处理块时,文件已经被正确关闭。

2. 替换文件中的文本:

with fileinput.input('file.txt', inplace=True) as f:
    for line in f:
        # 替换指定文本
        new_line = line.replace('old text', 'new text')
        print(new_line, end='')

可以使用字符串的replace方法将指定的文本替换为新的文本。文件的修改同样会直接影响原始文件。

3. 获取当前正在处理的文件名:

for line in fileinput.input('file.txt'):
    # 获取当前正在处理的文件名
    print(fileinput.filename())
    # 处理每一行数据
    print(line)

通过调用fileinput.filename()方法,可以获取当前正在处理的文件名。

以上就是使用fileinput模块进行文件读取和处理的示例代码。借助fileinput模块,可以方便地遍历多个文件,读取和处理文件内容,并且支持在文件中插入和替换文本。