作者博文地址:http://www.cnblogs.com/spiritman/

fileinput模块提供处理一个或多个文本文件的功能,可以通过使用for循环来读取一个或多个文本文件的所有行。

【默认格式】

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

 files:         #文件的路径列表,默认是stdin方式,多文件['1.txt','2.txt',...]
inplace: #是否将标准输出的结果写回文件,默认不取代
backup: #备份文件的扩展名,只指定扩展名,如.bak。如果该文件的备份文件已存在,则会自动覆盖。
bufsize: #缓冲区大小,默认为0,如果文件很大,可以修改此参数,一般默认即可
mode:      #读写模式,默认为只读
openhook:    #该钩子用于控制打开的所有文件,比如说编码方式等;

【常用函数】

 fileinput.input()       #返回能够用于for循环遍历的对象
fileinput.filename() #返回当前文件的名称
fileinput.lineno() #返回当前已经读取的行的数量(或者序号)
fileinput.filelineno() #返回当前读取的行的行号
fileinput.isfirstline() #检查当前行是否是文件的第一行
fileinput.isstdin() #判断最后一行是否从stdin中读取
fileinput.close() #关闭队列

【使用实例】

1、使用fileinput查看文件所有行
1 #cat user.txt
Jack
Rain
Tom
Suse
####################################################
#cat f_replace.py
#!/usr/bin/env python
import fileinput
for line in fileinput.input('user.txt'):
print line,
####################################################
13 #执行代码
#python f_replace.py
#输出结果
Jack
Rain
Tom
Suse
2、使用fileinput修改文件并备份原文件
1 #ls ./
2 user.txt
3 #cat user.txt
Jack
Rain
Tom
Suse
####################################################
#cat f_replace.py
#!/usr/bin/env python
11 import fileinput
for line in fileinput.input('user.txt',backup='.bak',inplace=1):
line = line.replace('Rain','Jerry')
print line,
####################################################
#执行代码
17 #python f_replace.py
#输出结果
19 #ls ./
20 user.txt user.txt.bak
21 #cat user.txt
Jack
Jerry
Tom
Suse
4、使用fileinput输出当前行号和行内容 
1 #cat user.txt
Jack
Rain
Tom
Suse
####################################################
#cat f_replace.py
#!/usr/bin/env python
import fileinput
for line in fileinput.input('user.txt'):
lineno = fileinput.lineno()
print lineno,line,
####################################################
#执行代码
#python f_replace.py
#输出结果
1 Jack
2 Rain
3 Tom
4 Suse
5、使用fileinput判断是否为第一行
1 #cat user.txt
Jack
Rain
Tom
Suse
####################################################
#cat f_replace.py
#!/usr/bin/env python
import fileinput
for line in fileinput.input('user.txt'):
if fileinput.isfirstline():
print line,
break
####################################################
#执行代码
#python f_replace.py
#输出结果
Jack
6、使用fileinput过滤系统文件message
1 #!/user/bin/env python
#coding=UTF8 import os
import fileinput
import re
from sys import exit
logfiles = os.listdir("/var/log/")
pattern="messages-*\d*"
msgfiles=[]
for log in logfiles:
if re.match(pattern,log):
print log
msgfiles.append("/var/log/"+log)
print(msgfiles)
while True:
find_str = raw_input("please input search key word:")
find_str = find_str.strip()
print(find_str)
if find_str =='':
continue
elif find_str.lower() =="q" or find_str.lower() =="quit":
print('bye bye!')
exit(0)
else:
for line in fileinput.input(msgfiles):
if find_str in line:
print("filename:%s \nfileline:%s\ncontent:%s" %(fileinput.filename(),fileinput.filelineno(),line))

作者博文地址:http://www.cnblogs.com/spiritman/

Python Fileinput 模块介绍的更多相关文章

  1. Python fileinput模块详解

    Python的fileinput模块可以快速对一个或多个文件进行循环遍历. import fileinput for line in fileinput.input(): process(line) ...

  2. Python Fileinput 模块

    作者博文地址:http://www.cnblogs.com/liu-shuai/ fileinput模块提供处理一个或多个文本文件的功能,可以通过使用for循环来读取一个或多个文本文件的所有行. [默 ...

  3. Python之模块介绍

    模块介绍 模块,是用一些代码实现的某个功能的代码集合. 类似与函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用,提供了代码的重用性和代码间的耦合.对于一个复杂的功能,可能需要多个函 ...

  4. python multiprocessing模块 介绍

    一 multiprocessing模块介绍 python中的多线程无法利用多核优势,如果想要充分地使用多核CPU的资源(os.cpu\_count\(\)查看),在python中大部分情况需要使用多进 ...

  5. Python day18模块介绍2(使用BASE_DIR修改临时path,os模块)

    1.BASE_DIR修改path(别人导入py项目时不会因为绝对路径无法解释) #sys修改环境变量 #使用BASE_DIR将绝对路径改为相对路径 import sys,os BASE_DIR=os. ...

  6. Python log 模块介绍

    刚用Python log模块写了一个例子,记录一下. import logging import logging.handlers import os from datetime import dat ...

  7. Python—time模块介绍

    time 模块 在平常的代码中,我们常常需要与时间打交道.在Python中,常用的与时间处理有关的模块就包括:time,datetime,下面来介绍time模块. 在开始之前,首先要说明几点: 一.在 ...

  8. python常用模块介绍

    关于if __name__ == "__main__": 若执行文件为bin,调用文件为cal: 若在执行文件bin中执行print(__name__) 输出:__main__ 当 ...

  9. Python os模块介绍

    os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname") 改变当前脚本工作目录:相当于shell下cd os.curd ...

随机推荐

  1. center os 7 安装 elasticSeartch

    Centos7下安装配置elasticsearch 6.3.1   1)下载 Elasticsearch 6.3.1 地址:https://artifacts.elastic.co/downloads ...

  2. Mac python3连接mysql

    Mac python3连接mysql 安装方法1: 1.pip3 install --upgrade pip //升级pip版本 2.sudo python3 /Library/Frameworks/ ...

  3. DB数据源之SpringBoot+Mybatis踏坑过程实录系列(一)

    DB数据源之SpringBoot+MyBatis踏坑过程(一) liuyuhang原创,未经允许进制转载 系列目录 DB数据源之SpringBoot+Mybatis踏坑过程实录(一) DB数据源之Sp ...

  4. Java代码生成器CodeX4J介绍

    用代码生成器生成一些固定的或有规律的代码,可以有效的提高工作效率.我写了个开源的,放在了GitHub上,希望能对有需要的朋友有所帮助. GitHub代码地址https://github.com/jac ...

  5. android4.4 重启的开机不播放开机铃声,按power键的开机播放开机铃声

    平台:A33Android4.4Linux3.4 功能描述:实现重启的开机不播放开机铃声,按power键的开机播放开机铃声 一,无论关机还是重启都会经过rebootOrShutdown这个方法,在方法 ...

  6. 使用树莓派拍摄延时动画,制作GIF图

    本期教大家将编写一个小脚本用树莓派来捕获多个图像,然后可以将这些图像组合成动画GIF,使用延时摄影功能,可以在几秒钟内查看非常慢的事情. 我们需要用到ImageMagick,这是一个用于图像处理的命令 ...

  7. Go语言反射之反射调用

    ## 1 概述利用反射,不仅可以获取信息,还可以创建实例,执行函数和方法.就是反射代理执行. <!-- more -->## 2 创建实例创建实例的前提是具有 `reflect.Type` ...

  8. Python之路(六)---> 函数、变量

    Python中的函数和数学上的函数定义是不一样的,从数学的角度上来说函数的定义:给定一个数集A,假设其中的元素为x.现对A中的元素x施加对应法则f,记作f(x),得到另一数集B.假设B中的元素为y.则 ...

  9. PL/SQL轻量版(一)——入门介绍

    一.概述 1.概念对比: SQL:结构化查询语言(Structured Query Language)简称SQL(发音:/ˈes kjuː ˈel/ "S-Q-L"),是一种特殊目 ...

  10. 20155322 2016-2017-2《Java程序设计》课程总结

    学号 2016-2017-2<Java程序设计>课程总结 (按顺序)每周作业链接汇总 预备作业一:浅谈对师生关系的看法以及对未来学习生活的展望 预备作业二:学习娄老师<做中学> ...