在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模块,可以方便地遍历多个文件,读取和处理文件内容,并且支持在文件中插入和替换文本。
