Python中很少人会用的Fileinput模块详解

开发 前端
Python中fileinput​模块的五个常见用法示例。通过灵活使用fileinput​模块,您可以轻松地处理文件和输入流,并进行各种文本操作。无论是逐行迭代、替换文本还是处理多个文件,fileinput模块为文件处理提供了强大而便捷的功能。

当涉及到文件处理和输入流时,Python中的fileinput模块是一个非常有用的工具。fileinput模块允许我们轻松地迭代处理多个文件,同时还可以处理标准输入流。以下是Python中fileinput模块的五个常见用法,每个用法都附带有代码和输出示例。

1. 逐行迭代文件

fileinput模块可以用于逐行迭代处理文件中的内容。下面的例子演示了如何逐行读取文件,并打印每行的内容:

import fileinput

for line in fileinput.input('data.txt'):
    print(line, end='')

输出:

Line 1
Line 2
Line 3

2. 替换文件中的文本

fileinput模块还可以用于在文件中替换指定的文本。下面的例子演示了如何将文件中的"old"替换为"new":

import fileinput

for line in fileinput.input('data.txt', inplace=True):
    line = line.replace('old', 'new')
    print(line, end='')

输出(文件data.txt被修改):

Line 1
Line 2
Line 3

3. 处理多个文件

fileinput模块可以处理多个文件,而不仅限于单个文件。下面的例子演示了如何逐行读取多个文件的内容:

import fileinput

for line in fileinput.input(['file1.txt', 'file2.txt', 'file3.txt']):
    print(line, end='')

输出:

File 1 Line 1
File 1 Line 2
File 1 Line 3
File 2 Line 1
File 2 Line 2
File 2 Line 3
File 3 Line 1
File 3 Line 2
File 3 Line 3

4. 记录当前文件名和行号

fileinput模块可以记录当前处理的文件名和行号。下面的例子演示了如何打印每行的文件名和行号:

import fileinput

for line in fileinput.input('data.txt'):
    print(f'File: {fileinput.filename()}, Line: {fileinput.filelineno()}, Content: {line}', end='')

输出:

File: data.txt, Line: 1, Content: Line 1
File: data.txt, Line: 2, Content: Line 2
File: data.txt, Line: 3, Content: Line 3

5. 处理标准输入流

除了处理文件,fileinput模块还可以处理标准输入流。下面的例子演示了如何读取标准输入中的内容:

import fileinput

for line in fileinput.input():
    print(line, end='')

输入(从标准输入输入):

Input Line 1
Input Line 2
Input Line 3

输出:

Input Line 1
Input Line 2
Input Line 3

以上是Python中fileinput模块的五个常见用法示例。通过灵活使用fileinput模块,您可以轻松地处理文件和输入流,并进行各种文本操作。无论是逐行迭代、替换文本还是处理多个文件,fileinput模块为文件处理提供了强大而便捷的功能。

责任编辑:武晓燕 来源: 科学随想录
相关推荐

2023-12-22 14:50:02

开发PythonHypothesis

2021-09-17 22:58:59

手机无线充电电池

2023-12-14 07:30:04

PicklePython模块

2011-07-01 15:53:19

Python 模块

2020-04-15 15:48:03

Node.jsstream前端

2020-11-18 09:06:02

JavaScript开发技术

2022-12-13 16:44:10

JavaScrip工具开发

2024-01-12 13:27:07

AWS用法S3

2024-05-28 00:01:00

开发者Python模块

2021-11-03 23:07:33

Windows 10Windows微软

2024-01-22 12:10:57

zoneinfo模块解析

2020-11-11 08:24:06

collection

2010-02-03 10:12:53

Python模块

2020-11-06 13:42:59

itertools

2017-10-25 16:22:58

OpenStack操作Glance

2023-12-22 08:38:02

Pythondatetimetime

2023-11-27 15:08:52

Python编程语言

2012-05-18 11:16:42

@Kroll注解详解TitaniumAndroid模块

2020-06-04 14:15:55

Java中BigDecimal函数

2018-09-29 15:34:34

JavaList接口
点赞
收藏

51CTO技术栈公众号