Python中fileinput模块使用方法
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模块使用方法的更多相关文章
- 【转】关于python中re模块split方法的使用
注:最近在研究文本处理,需要用到正则切割文本,所以收索到了这篇文章,很有用,谢谢原作者. 原址:http://blog.sciencenet.cn/blog-314114-775285.html 关于 ...
- Python中fileinput模块使用
fileinput模块可以对一个或多个文件中的内容进行迭代.遍历等操作.该模块的input()函数有点类似文件 readlines()方法,区别在于前者是一个迭代对象,需要用for循环迭代,后者是一次 ...
- Python中安装模块的方法
1.*nix系统上有一个地方专门有一个地方来放置安装的Python模块 比如在Mac上,这个目录的路径为: /usr/lib/python2.7 将要安装的文件拷贝到这里即可 2.下载模块包,解压后, ...
- Python中os模块使用方法
os模块提供了对系统环境.文件.目录等操作系统级的接口函数.本文主要描述os模块和os.path模块常用函数以及常用实例. os模块函数 os.getcwd() 获取当前工作的目录. os.listd ...
- python中os模块函数方法详解最全最新
os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 import os print(os.getcwd()) os.chdir("dirname") 改 ...
- Python中optionParser模块的使用方法[转]
本文以实例形式较为详尽的讲述了Python中optionParser模块的使用方法,对于深入学习Python有很好的借鉴价值.分享给大家供大家参考之用.具体分析如下: 一般来说,Python中有两个内 ...
- python中os模块中文帮助
python中os模块中文帮助 python中os模块中文帮助文档文章分类:Python编程 python中os模块中文帮助文档 翻译者:butalnd 翻译于2010.1.7——2010.1.8 ...
- python中threading模块详解(一)
python中threading模块详解(一) 来源 http://blog.chinaunix.net/uid-27571599-id-3484048.html threading提供了一个比thr ...
- Python中的模块介绍和使用
在Python中有一个概念叫做模块(module),这个和C语言中的头文件以及Java中的包很类似,比如在Python中要调用sqrt函数,必须用import关键字引入math这个模块,下面就来了解一 ...
随机推荐
- synchronous-request-with-websockets
https://stackoverflow.com/questions/13417000/synchronous-request-with-websockets
- java下载excel,excel从数据库获取数据
<!-- poi --> <dependency> <groupId>org.apache.poi</groupId> <artifactId&g ...
- Linux程序的执行
一.多任务协调机制 $ find /boot | cpio -ocB > /tmp/boot.img 程序执行方式——流式处理 “|”是匿名管道 管道分匿名管道,命名管道.匿名管道属于临时工,随 ...
- HDFS高级功能
HDFS的六大高级特性: 安全模式 安全模式是HDFS所处的一种特殊状态,在这种状态下,文件系统只接受读数据请求,而不接受删除.修改等变更请求.在NameNode主节点启动时,HDFS首先进入安全模式 ...
- requests模块的cookie和代理操作
一.基于requests模块的cookie操作 引言:有些时候,我们在使用爬虫程序去爬取一些用户相关信息的数据(爬取张三“人人网”个人主页数据)时,如果使用之前requests模块常规操作时,往往达不 ...
- js中基本数据类型和引用数据类型的区别
1.基本数据类型和引用数据类型 ECMAScript包括两个不同类型的值:基本数据类型和引用数据类型. 基本数据类型指的是简单的数据段,引用数据类型指的是有多个值构成的对象. 当我们把变量赋值给一个变 ...
- 为什么使能RPS/RFS, 或者RSS/网卡多队列后,QPS反而下降?
http://laoar.github.io/blog/2017/05/07/rps/ TL;DR RPS 即receive side steering,利用网卡的多队列特性,将每个核分别跟网卡的一个 ...
- Linux交换空间(swap space)
每次安装Linux的时候,都会要求配置交换分区,那么这个分区是干嘛的呢?不设置这个分区有什么后果?如果一定要设置,设置多大比较合适?本篇将试图回答这些问题并尽量覆盖所有swap相关的知识. 下面的所有 ...
- .NET/C#发起GET和POST请求的几种方法
using System.Net; GET: 1 2 3 var request = (HttpWebRequest)WebRequest.Create("http://www.lead ...
- vue的异步组件按需加载
当build打包后,app.js过大的时候,可以考虑用异步组件的方式. import HomeHeader from "./components/Header"; import H ...