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,

Python中fileinput模块使用方法的更多相关文章

  1. 【转】关于python中re模块split方法的使用

    注:最近在研究文本处理,需要用到正则切割文本,所以收索到了这篇文章,很有用,谢谢原作者. 原址:http://blog.sciencenet.cn/blog-314114-775285.html 关于 ...

  2. Python中fileinput模块使用

    fileinput模块可以对一个或多个文件中的内容进行迭代.遍历等操作.该模块的input()函数有点类似文件 readlines()方法,区别在于前者是一个迭代对象,需要用for循环迭代,后者是一次 ...

  3. Python中安装模块的方法

    1.*nix系统上有一个地方专门有一个地方来放置安装的Python模块 比如在Mac上,这个目录的路径为: /usr/lib/python2.7 将要安装的文件拷贝到这里即可 2.下载模块包,解压后, ...

  4. Python中os模块使用方法

    os模块提供了对系统环境.文件.目录等操作系统级的接口函数.本文主要描述os模块和os.path模块常用函数以及常用实例. os模块函数 os.getcwd() 获取当前工作的目录. os.listd ...

  5. python中os模块函数方法详解最全最新

    os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 import os print(os.getcwd()) os.chdir("dirname") 改 ...

  6. Python中optionParser模块的使用方法[转]

    本文以实例形式较为详尽的讲述了Python中optionParser模块的使用方法,对于深入学习Python有很好的借鉴价值.分享给大家供大家参考之用.具体分析如下: 一般来说,Python中有两个内 ...

  7. python中os模块中文帮助

    python中os模块中文帮助   python中os模块中文帮助文档文章分类:Python编程 python中os模块中文帮助文档 翻译者:butalnd 翻译于2010.1.7——2010.1.8 ...

  8. python中threading模块详解(一)

    python中threading模块详解(一) 来源 http://blog.chinaunix.net/uid-27571599-id-3484048.html threading提供了一个比thr ...

  9. Python中的模块介绍和使用

    在Python中有一个概念叫做模块(module),这个和C语言中的头文件以及Java中的包很类似,比如在Python中要调用sqrt函数,必须用import关键字引入math这个模块,下面就来了解一 ...

随机推荐

  1. 本机无法访问虚拟机里面的nginx的80端口

    在虚拟机VMware上装好了centos6.9,并配好了nginx,但是本机就是无法访问.具体情况如下1.本机能ping通虚拟机2.虚拟机也能ping通本机3.虚拟机能访问自己的web4.本机无法访问 ...

  2. Spring Boot 学习视频

    1. Spring Boot  项目实战 ----- 技术栈博客企业前后端 链接:https://pan.baidu.com/s/1hueViq4 密码:4ma8 2.Spring Boot  项目实 ...

  3. Python的可迭代对象、迭代器和生成器

    可迭代对象(Iterable) 这些可以直接作用于for循环的对象统称为可迭代对象:Iterable. 我们已经知道,可以直接作用于for循环的数据类型有以下几种: 一类是集合数据类型,如list.t ...

  4. 使用Mongo dump 将数据导入到hive

    概述:使用dump 方式将mongo数据导出,上传到hdfs,然后在hive中建立外部表. 1.     使用mongodump 将集合导出 mongodump --host=localhost:27 ...

  5. Java——ikanalyzer分词·只用自定义词库

    需要包:IKAnalyzer2012_FF_hf1.jarlucene-core-5.5.4.jar需要文件: IKAnalyzer.cfg.xmlext.dicstopword.dic 整理好的下载 ...

  6. python连接数据库——create_engine和conn.cursor

    python操作数据库的方法: 一种是导入sqlalchemy包,另一种是导入psycopg2包. 具体用法如下(此处以postgre数据库举例) 第一种: # 导入包 from sqlalchemy ...

  7. 微信小程序笔记<一>初识小程序

    一.IDE界面介绍 编辑界面 调试界面 项目管理界面 左侧工具介绍 二.项目文件类型及结构介绍 这是一个初始小程序的项目目录,其中涉及四种文件类型: *.js:JavaScript文件(JavaScr ...

  8. 1.理解Numpy、pandas

    之前一直做得只是采集数据,而没有再做后期对数据的处理分析工作,自己也是有意愿去往这些方向学习的,最近就在慢慢的接触. 首先简单理解一下numpy和pandas:一.NumPy:1.NumPy是高性能计 ...

  9. Maven下载私服上的jar包

    1.配置M2_HOME/conf/settions.xml <server> <id>maven-public</id> <username>admin ...

  10. 省市区联动JS脚本

    省市区联动JS脚本 /* ***说明:省市区联动JS脚本 ***作者:Jerry Yuan  */ var province=[{id:0,name:'选择省'},{id:11,name:" ...