Python中很少人会用的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模块为文件处理提供了强大而便捷的功能。

当前题目:Python中很少人会用的Fileinput模块详解
分享地址:http://www.gawzjz.com/qtweb/news41/164791.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联