fileinput库怎么用

本文最后更新于 2023年9月26日。

fileinput库怎么用

fileinput 库是 Python 标准库中的一个模块,可以用于读取多个文件的内容,它可以从一个或多个文件中读取数据,也可以从标准输入读取数据。

下面是一个简单的例子,展示如何使用 fileinput 从文件中读取数据:

import fileinput
# 打开文件
with fileinput.input('file.txt') as f:
# 逐行读取文件内容
for line in f:
# 处理每一行的数据
print(line.strip())

在上面的代码中,我们使用 fileinput.input() 函数打开文件 'file.txt',并使用 with 语句处理文件读取过程中的异常。然后,我们使用 for 循环逐行读取文件内容,对每一行的数据进行处理,并打印出来。

除了从文件中读取数据之外,fileinput 还可以从标准输入读取数据。例如,下面的代码演示了如何从标准输入读取数据:

import fileinput
# 从标准输入读取数据
for line in fileinput.input():
# 处理每一行的数据
print(line.strip())

在上面的代码中,我们没有指定要读取的文件名,而是直接使用 fileinput.input() 函数从标准输入读取数据。然后,我们使用 for 循环逐行读取输入数据,并对每一行的数据进行处理,并打印出来。

除了上面演示的例子外,fileinput 还有其他一些功能,例如可以指定多个文件进行读取,也可以在读取文件时进行原地替换等等。具体使用方法可以参考官方文档。

和open readline的区别

fileinput 库和 open() 函数以及 readline() 方法都可以用于读取文件内容,但它们之间有一些区别。

open() 函数是 Python 中最基本的文件读写函数,用于打开一个文件并返回一个文件对象。可以通过 readline() 方法逐行读取文件内容,或者使用 read() 方法读取整个文件内容。例如:

with open('file.txt', 'r') as f:
line = f.readline()  # 读取文件的一行内容
content = f.read()  # 读取整个文件的内容

fileinput 库可以读取多个文件的内容,也可以从标准输入读取数据。与 open() 函数不同,fileinput 库可以在读取文件时进行原地替换。例如:

import fileinput
# 读取多个文件的内容
for line in fileinput.input(['file1.txt', 'file2.txt']):
# 处理每一行的数据
print(line.strip())
# 原地替换文件内容
with fileinput.input('file.txt', inplace=True) as f:
for line in f:
print(line.replace('old', 'new'), end='')

readline() 方法只能逐行读取文件内容,并且需要在循环中进行迭代。例如:

with open('file.txt', 'r') as f:
while True:
line = f.readline()
if not line:
break
# 处理每一行的数据
print(line.strip())

需要注意的是,readline() 方法在读取文件内容时,会将文件内容一行一行地读取到内存中,如果文件非常大,可能会导致内存占用过高。因此,如果需要处理大文件,建议使用 fileinput 库或者其他的流式读取方式。