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

Python中fileinput模块的基本用法和示例

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

fileinput模块是Python中一个用于读取文件的模块,它可以方便地从多个文件中读取数据,并且提供了一些便捷的方法来处理文件的操作。下面将介绍fileinput模块的基本用法,并给出一个使用例子。

首先,我们需要导入fileinput模块:

import fileinput

然后,我们可以使用fileinput模块的input函数来读取文件。input函数可以接受多个文件名作为参数,也可以接受stdin作为输入。

for line in fileinput.input(files=(file1, file2, ...)):
    # 处理每一行数据
    pass

在上面的代码中,files参数可以是一个字符串,代表一个文件名;也可以是一个文件名的列表或元组,代表多个文件。我们使用for循环来遍历文件中的每一行数据,然后进行处理。

fileinput模块提供了一些便捷的方法来获取和处理文件的信息。下面是几个常用的方法:

1. fileinput.filename():获取当前行所在文件的文件名。

2. fileinput.lineno():获取当前行的行号。

3. fileinput.filelineno():获取当前行在当前文件中的行号。

4. fileinput.isfirstline():判断当前行是否是当前文件的 行。

5. fileinput.isstdin():判断当前行是否来自标准输入(stdin)。

在下面的例子中,我们将演示如何使用fileinput模块来读取文件:

import fileinput

for line in fileinput.input(files=('file1.txt', 'file2.txt')):
    # 获取当前行所在文件的文件名
    filename = fileinput.filename()
    # 获取当前行的行号
    lineno = fileinput.lineno()
    # 获取当前行在当前文件中的行号
    filelineno = fileinput.filelineno()
    # 判断当前行是否是当前文件的      行
    firstline = fileinput.isfirstline()
    # 判断当前行是否来自标准输入
    stdin = fileinput.isstdin()
    
    # 处理每一行数据的逻辑
    print(line)
    
    # 打印文件名、行号和文件行号
    print(f'filename: {filename}, lineno: {lineno}, filelineno: {filelineno}')
    # 打印是否是      行和是否来自标准输入
    print(f'firstline: {firstline}, stdin: {stdin}')

在上面的例子中,我们依次读取了file1.txt和file2.txt两个文件,并对每个文件的每一行数据进行处理。在处理过程中,我们调用了fileinput模块提供的一些方法来获取和处理文件的信息,并打印出来。

以上就是fileinput模块的基本用法和一个使用例子。使用fileinput模块可以方便地处理多个文件的读取操作,并提供了一些便捷的方法来获取和处理文件的信息。希望对你有所帮助!