Python Fileinput 模块
作者博文地址: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 模块的更多相关文章
- Python Fileinput 模块介绍
作者博文地址:http://www.cnblogs.com/spiritman/ fileinput模块提供处理一个或多个文本文件的功能,可以通过使用for循环来读取一个或多个文本文件的所有行. [默 ...
- Python fileinput模块详解
Python的fileinput模块可以快速对一个或多个文件进行循环遍历. import fileinput for line in fileinput.input(): process(line) ...
- Python基础【第十一篇】文件操作(file()、open()方法和fileinput模块)
一.file/open 内置函数 file函数的方法: 注:file 和 open的用法和功能相同这里只对file进行分析 file(‘filename’,’mode’) file(‘filename ...
- Python中fileinput模块使用
fileinput模块可以对一个或多个文件中的内容进行迭代.遍历等操作.该模块的input()函数有点类似文件 readlines()方法,区别在于前者是一个迭代对象,需要用for循环迭代,后者是一次 ...
- Python第二十一天 fileinput模块
Python第二十一天 fileinput模块 fileinput模块 fileinput.input([files[, inplace[, backup[, bufsize[, mode[, ...
- 洗礼灵魂,修炼python(19)--文件I/O操作,linecache,fileinput模块
文件I/O操作 1.什么是文件I/O操作 首先I/O(input/output),即输入/输出端口,然后文件,大家应该都是是什么,一个数据,一个txt或者html文档就是一个文件.文件操作就是对文件进 ...
- Python中fileinput模块使用方法
fileinput模块提供处理一个或多个文本文件的功能,可以通过使用for循环来读取一个或多个文本文件的所有行.python2.7文档关于fileinput介绍:fileinput fileinp ...
- python标准库介绍——15 fileinput 模块详解
``fileinput`` 模块允许你循环一个或多个文本文件的内容, 如 [Example 2-1 #eg-2-1] 所示. ====Example 2-1. 使用 fileinput 模块循环一个文 ...
- fileinput模块
刚才练习的时候,报如下错误: AttributeError: module 'fileinput' has no attribute 'input',后来Google参考这篇文章https://mai ...
随机推荐
- javaScript入门之常用事件
JS中的常用事件 onfocus/onblur:聚焦离焦事件,用于表单校验的时候比较合适. onclick/ondblclick:鼠标单击和双击事件 onkeydown/onkeypress:搜索引擎 ...
- 《C#多线程编程实战》1.10 lock关键字
lock关键字是锁定资源用的. 书上的代码解释很好. /// <summary> /// 抽象类 加减法 /// </summary> abstract class Count ...
- luoguP4172 [WC2006]水管局长
https://www.luogu.org/problemnew/show/P4172 考虑倒序处理所有操作 先把不会被删掉的边加入图中,LCT 维护最小生成树,再倒序插入每一条边,如果边的 ( l, ...
- 公司拷贝回家的工程用sts导入clean package报错java.lang.NoClassDefFoundError
从公司拷贝工程回家加班,用相同版本的sts和jdk但是run as maven build clean package 总是报错java.lang.NoClassDefFoundError: ...
- 1. Shell编程第一讲
(1)shell 历史: Shell的作用是解释执行用户的命令,用户输入一条命令,Shell就解释执行一条,这种方式称为交互式(Interactive). Shell还有一种执行命令的方式称为批处理( ...
- [转]An STL compliant sorted vector-源码示例
原文地址:http://www.codeproject.com/Articles/3217/An-STL-compliant-sorted-vector 最近在看sorted vectored的一些东 ...
- win10+anaconda环境下pyqt5+qt tools+eric6.18安装及汉化过程
最近需要用python编写一个小程序的界面,选择了pyqt5+eric6的配套组合,安装过程中遇到一些坑,特此记录.参考书籍是电子工业出版社的<PyQt5快速开发与实战>. 因为我使用an ...
- 两种unix网络编程线程池的设计方法
unp27章节中的27.12中,我们的子线程是通过操作共享任务缓冲区,得到task的,也就是通过线程间共享的clifd[]数组,这个数组其实就是我们的任务数组,得到其中的connfd资源. 我们对这个 ...
- JS 的冒泡排序
// 冒泡排序 从小到大 function maoPaoPaiXu(arr) { // 控制循环的比较的轮次 for (var i = 0; i < arr.length - 1; i++) { ...
- Java实现连接FTP服务并传递文件
public class FtpClientUtil { private String host; private int port; private String username; private ...