作者博文地址: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. 编写高质量代码改善C#程序的157个建议——建议43:让接口中的泛型参数支持协变

    建议43:让接口中的泛型参数支持协变 除了上一建议中提到的使用泛型参数兼容接口不可变性外,还有一种办法是为接口中的泛型声明加上out关键字来支持协变,如下所示: interface ISalary&l ...

  2. 编写高质量代码改善C#程序的157个建议——建议40:使用event关键字为委托施加保护

    建议40:使用event关键字为委托施加保护 在建议中我们实现了一个具有通知功能的文件传输类,如下: class FileUploader { public delegate void FileUpl ...

  3. 设计模式07: Bridge 桥接模式(结构型模式)

    Bridge 桥接模式(结构型模式) 抽象与实现 抽象不应该依赖于实现细节,实现细节应该依赖于抽象. 抽象B稳定,实现细节b变化 问题在于如果抽象B由于固有的原因,本身并不稳定,也有可能变化,怎么办? ...

  4. [Lua快速了解一下]Lua运行

    -Lua的Hello World print("Hello World") 分号可选 -类似python,进入Lua后再shell中打命令执行语句也可 > print(&qu ...

  5. 在Eclipse中连接SQL

    原创 在Eclipse中连接SQL分为如下几个步骤: 1.加载驱动程序 2.创建连接对象 3.创建执行SQL语句的对象 4.执行SQL语句 5.关闭new出来的对象 1.加载驱动程序(以SQL为例) ...

  6. 个人项目:wc程序(java)

    Github项目地址:https://github.com/jat0824/wc.git 项目相关要求 wc.exe 是一个常见的工具,它能统计文本文件的字符数.单词数和行数.这个项目要求写一个命令行 ...

  7. Sharepoint2013搜索学习笔记之自定义查询规则(十)

    自定义查询规则,可以根据搜索的关键字将指定的一个或一堆搜索结果提升到第一的位置,如我搜索周杰伦,可以指定搜索最靠前的结果是sharepoint网站内周杰伦的视频如下图: 第一步,进入管理中心,点击管理 ...

  8. XXX培训机构Python自动化教程目录

  9. java设计模式 策略

    什么是策略设计模式? 世界永远都在变,唯一不变的就是变本身 举个生活中的例子,小时候玩的游戏中,Sony的PSP提供了统一的卡槽接口,玩家只要更换卡带就可以达到更换游戏的目的,做到了一机多用 特工执行 ...

  10. java 笔记整理

    在19寒假对java基础进行自学,总结的笔记整理出来 ==================================================== 排序查找 冒泡排序法1.一共会比较数组元 ...