fileinput模块:读取,替换文本内容

来源:互联网 发布:淘宝香水店 编辑:程序博客网 时间:2024/06/14 16:28

fileinput模块:读取,替换文本内容

fileinput模块提供处理一个或多个文本文件的功能,可以通过使用for循环来读取一个或多个文本文件的所有行。它的工作方式和readlines很类似,不同点在于它不是将全部的行读到列表中而是创建了一个xreadlines对象。

功能函数介绍:

1. 遍历文本内容

import fileinput

for eachline in fileinput.input("article.ids.txt"):

    print eachline

实现的方式其实跟readlines是一样的!

2. 打印输入的文件名称

import fileinput

for eachline in fileinput.input("article.ids.txt"):

    print fileinput.filename()#打印article.ids.txt

3. 打印当前行号与行的内容

importfileinput

foreachline in fileinput.input("article.ids.txt"):

printfileinput.lineno(),eachline

4. 返回是否是第一行

import fileinput

for eachline in fileinput.input("article.ids.txt"):

if fileinput.isfirstline():print eachline;break

5. 文本文件的替换操作很简单.

只需要把 inplace 关键字参数设置为 1 , 传递给 input 函数, 该模块会帮你做好一切. inplace=1:标准输出会被重定向到打开文件;backup=’_bak’,:替换文件内容之前备份后缀以_bak结尾;另外,在调用fileinput.input()之后记得要fileinput.close()。

 

示例1-使用fileinput模块将 CRLF改为 LF

importfileinput, sys
for line in fileinput.input(inplace=1):
    # convert Windows/DOS text files toUnix files
    if line[-2:] == "/r/n":
        line = line[:-2] + "/n"

 

示例2-使用文件先备份为bak,再将Java改为Python

importfileinput

for line infileinput.input('test.txt',backup='_bak',inplace=1):

printline.replace('Java','Python'),

fileinput.close()

0 0
原创粉丝点击