• Python中fileinput模块使用方法


        fileinput模块提供处理一个或多个文本文件的功能,可以通过使用for循环来读取一个或多个文本文件的所有行。python2.7文档关于fileinput介绍:fileinput

      fileinput常用函数

    fileinput.input() #返回能够用于for循环遍历的对象

    fileinput.filename() #返回当前文件的名称

    fileinput.lineno() #返回当前已经读取的行的数量(或者序号)

    fileinput.filelineno() #返回当前读取行的行号

    fileinput.isfirstline() #检查当前行是否是文件的第一行

    fileinput.isstdin() #判断最后一行是否从stdin中读取

    fileinput.close() #关闭队列

      重点函数input介绍

       原型:fileinput.input (files='filename', inplace=False, backup='', bufsize=0, mode='r', openhook=None)

      参数说明如下:

    files #文件的路径列表,默认是stdin方式,多文件['1.txt','2.txt',...]

    inplace #是否将标准输出的结果写回文件,默认值为Fasle不取代

    backup #备份文件的扩展名,只指定扩展名,如.bak。如果该文件的备份文件已存在,则会自动覆盖。

    bufsize #缓冲区大小,默认为0,如果文件很大,可以修改此参数,一般默认即可

    mode #读写模式,默认为只读

    openhook #该钩子用于控制打开的所有文件,比如说编码方式等;

      常用实例

    (1)查看指定文件内容

    #-*- coding:utf-8 -*-#

    import fileinput

    for line in fileinput.input('/etc/passwd'):

      print line,

    (2)修改指定文件内容,并备份原文件

    #-*- coding:utf-8 -*-#

    import fileinput

    for line in fileinput.input('ip.txt',backup='.bak',inplace=1):

        print line.replace('192.168.0.1','10.10.10.10'),

      说明:注意print语句最后有一个逗号,否则修改后的文件每一行下方会多出一个空行

    (3)修改指定目录下的所有以.txt后缀的文件内容,不对原文件进行备份

    #-*- coding:utf-8 -*-#

    import fileinput

    import glob

    for line in fileinput.input(files=glob.glob('./*.txt'),inplace=1):

        print line.replace('192.168.0.1','10.10.10.10'),

    (4)在文件每行的起始处添加行号。注意使用fileinput.filelineno()和fileinput.lineno()的区别。lineno()会在前一个文件行数的基础上+1开始执行。

    #-*- coding:utf-8 -*-#

    import fileinput

    for eachLine in fileinput.input(files=['temp1.txt', 'temp2.txt'], inplace=True):

        print "Line " + str(fileinput.filelineno()) + ': ' + eachLine,

      (5)在每个文件的开始处打印文件名。

    #-*- coding:utf-8 -*-#

    import fileinput

    for eachLine in fileinput.input(files=['temp1.txt', 'temp2.txt'], inplace=True):

        if fileinput.isfirstline():

            print fileinput.filename()

        print eachLine,

  • 相关阅读:
    高德地图的使用点标记、折线标记
    vue 过滤器filter(全面)
    vue cli4.0 快速搭建项目详解
    vue cli3.0快速搭建项目详解(强烈推荐)
    路由传参的三种方法
    router-link 返回上页 和 新窗口打开链接
    Django REST framework+Vue 打造生鲜超市(一)
    Android笔记:波纹按钮
    简单更换博客园背景
    SUID,SGID和SBIT
  • 原文地址:https://www.cnblogs.com/linyfeng/p/7118492.html
Copyright © 2020-2023  润新知