作者博文地址:http://www.cnblogs.com/liu-shuai/

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

【默认格式】

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

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

【常用函数】

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

【使用实例】

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

Python Fileinput 模块的更多相关文章

  1. Python Fileinput 模块介绍

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

  2. Python fileinput模块详解

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

  3. Python基础【第十一篇】文件操作(file()、open()方法和fileinput模块)

    一.file/open 内置函数 file函数的方法: 注:file 和 open的用法和功能相同这里只对file进行分析 file(‘filename’,’mode’) file(‘filename ...

  4. Python中fileinput模块使用

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

  5. Python第二十一天 fileinput模块

    Python第二十一天    fileinput模块 fileinput模块 fileinput.input([files[, inplace[, backup[, bufsize[, mode[, ...

  6. 洗礼灵魂,修炼python(19)--文件I/O操作,linecache,fileinput模块

    文件I/O操作 1.什么是文件I/O操作 首先I/O(input/output),即输入/输出端口,然后文件,大家应该都是是什么,一个数据,一个txt或者html文档就是一个文件.文件操作就是对文件进 ...

  7. Python中fileinput模块使用方法

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

  8. python标准库介绍——15 fileinput 模块详解

    ``fileinput`` 模块允许你循环一个或多个文本文件的内容, 如 [Example 2-1 #eg-2-1] 所示. ====Example 2-1. 使用 fileinput 模块循环一个文 ...

  9. fileinput模块

    刚才练习的时候,报如下错误: AttributeError: module 'fileinput' has no attribute 'input',后来Google参考这篇文章https://mai ...

随机推荐

  1. 如何从Spring官网下载Spring的jar包

    Spring官网:https://spring.io/ 进入官网点击PRODECTS 然后点击Spring Framework 进入下面的页面点击小猫图标: 之后再下面的页面持续向下滚动,找到下图我标 ...

  2. 在Linux环境下的卸载Oracle11G操作

    1.使用SQL*PLUS停止数据库[oracle@OracleTest oracle]$ sqlplus /nolog SQL> connect / as sysdba SQL> shut ...

  3. 钩子(hook)编程

    一.钩子介绍 1.1钩子的实现机制 钩子英文名叫Hook,是一种截获windows系统中某应用程序或者所有进程的消息的一种技术.下图是windows应用程序传递消息的过程: 如在键盘中按下一键,操作系 ...

  4. property特性

    什么是property property是一种特殊属性,访问他时会执行一段功能然后返回值 class People: def __init__(self,name,weight,height): se ...

  5. [SinGuLaRiTy] 2017 百度之星程序设计大赛 初赛A

    [SinGuLaRiTy-1036] Copyright (c) SinGuLaRiTy 2017. All Rights Reserved. 小C的倍数问题 Time Limit: 2000/100 ...

  6. 墨菲定律与 IndexOutOfBoundsException(数组越界异常)

    今天维护又反馈了一问题过来,查询试卷时报数组越界异常: 2017-02-28 10:45:24,827[ERROR] HttpException[10.32.111.7:60446:2D07867BE ...

  7. codevs 3044 矩形面积求并

    3044 矩形面积求并   题目描述 Description 输入n个矩形,求他们总共占地面积(也就是求一下面积的并) 输入描述 Input Description 可能有多组数据,读到n=0为止(不 ...

  8. [转载]ssget 用法详解 by yxp

    总结得很好的ssget用法.....如此好文,必须转载. 原文地址: http://blog.csdn.net/yxp_xa/article/details/72229202 ssget 用法详解 b ...

  9. ssh免密码登录、secureCRT免密码登录详解

    再放一张真机实现图: 接下来就详细讲述实现细节. 实现过程中吃了不少苦头,这个不对,那个不通.好在慢慢一点点摸索出来了,经验分享在这里. 希望能终结网上ssh免密码登录,以及SecureCRT免密码登 ...

  10. 跟我一起读postgresql源码(三)——Rewrite(查询重写模块)

    上一篇博文我们阅读了postgresql中查询分析模块的源码.查询分析模块对前台送来的命令进行词法分析.语法分析和语义分析后获得对应的查询树(Query).在获得查询树之后,程序开始对查询树进行查询重 ...