当前位置 : 主页 > 编程语言 > python >

详解 Python 操作多个文件(fileinput)模块使用方法

来源:互联网 收集:自由互联 发布时间:2023-07-28
fileinput是Python内置模块之一,它提供了一种方便的方式来迭代处理多个文件或标准输入。使用fileinput模块,可以很容易地遍历多个文件的所有行,而不必手动打开和关闭每个文件。 fi

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://www.558idc.com/aqt.html提供,感恩】
网友评论