python fileinput_Python之fileinput模块学习「建议收藏」

python fileinput_Python之fileinput模块学习「建议收藏」fileinput模块fileinput.input([files[,inplace[,backup[,bufsize[,mode[,openhook]]]]]])files:#文件的路径列表,默认是stdin方式,多文件[‘1.txt’,’2.txt’,…]inplace:#是否将标准输出的结果写回文件,默认不取代…

大家好,又见面了,我是你们的朋友全栈君。

fileinput模块

fileinput.input([files[, inplace[, backup[, bufsize[, mode[, openhook]]]]]])

files:                  #文件的路径列表,默认是stdin方式,多文件[‘1.txt’,’2.txt’,…]

inplace:                #是否将标准输出的结果写回文件,默认不取代

backup:                 #备份文件的扩展名,只指定扩展名,如.bak。如果该文件的备份文件已存在,则会自动覆盖。

bufsize:                #缓冲区大小,默认为0,如果文件很大,可以修改此参数,一般默认即可

mode:                   #读写模式,默认为只读

openhook:               #该钩子用于控制打开的所有文件,比如说编码方式等;

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

它的工作方式和readlines很类似,不同点在于它不是将全部的行读到列表中而是创建了一个xreadlines对象。

关键在这句话:标准输出会被重定向到打开文件

所以一定要用print打印到标准输出,fileinput会自动把标准输出内容回写到文件,如果没有用print打印到标准输出,那么就会把空内容回写到文件,也就是清除了文件所有内容

print re_basedir.sub(‘basedir=/usr/local/mysql’, line) ,

下面是fileinput模块中的常用函数:

input()    #返回能够用于for循环遍历的对象

filename()  #返回当前文件的名称

lineno()   #返回当前已经读取的行的数量(或者序号)

filelineno() #返回当前读取的行的行号

isfirstline() #检查当前行是否是文件的第一行

示例

#如果要修改多个地方,将sub()得到的结果代入第二个sub()函数再print出来

def modify_startupscript(port):

for line in fileinput.input(MYSQL_STARTUP_SCRIPT,inplace=1):

re_datadir = re.compile(r’datadir=’, re.I | re.M)

content= re_datadir.sub(‘datadir=/data/mysql/mysql%s/data’ %port, line)

re_basedir = re.compile(r’basedir=’, re.I | re.M)

print re_basedir.sub(‘basedir=/usr/local/mysql’, content) ,

fileinput.close()

示例#!/usr/bin/env python

import fileinput

for line in fileinput.input(‘test.txt’,backup=’.bak’,inplace=1):

print line.replace(‘Python’,’LinuxEye’),

fileinput.close()

示例

判断是否是第一行import fileinput

for line in fileinput.input(‘test.txt’):

if fileinput.isfirstline():

print line,

else:

break

fileinput.close()

示例import fileinput

from glob import glob

for line in fileinput.input(glob(r’d:/*.txt’)):

print fileinput.lineno(), u’文件:’, fileinput.filename(), /

u’行号:’, fileinput.filelineno(), u’长度:’, len(line.strip(‘/n’))

fileinput.close()

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/146020.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Echarts折线图案例

    Echarts折线图案例问题:重置echarts折线图时,总会出现多个数据的拐点,与实际渲染的数据拐点不符合。解决:在实例化echarts后clear上一次的图。myEcharts.clear()案例constoption={//触摸echarts图的提示内容tooltip:{//是否显示提示框show:true,//触发类型://’item’:主要在散点图,饼图等无类目轴的图表中使用

  • MFC读取excel数据

    MFC读取excel数据CDatabasedatabase; CStringsDriver; CStringsItem1,sItem2; CStringsDsn; CStringsFile=””;//filename CStringsSql; CFileDialogdlg(TRUE,//true为打开,false为创建 “xls”, “FileList”,

  • 高德地图获取shp文件_手机高德地图坐标拾取

    高德地图获取shp文件_手机高德地图坐标拾取转载自:http://blog.csdn.net/yukimineryuu/article/details/50933582用Eclipse获取sha1值比较简单。最近自己换了androidstudio开发,申请key的时候,要两个版本的sha1值。一个是开发版(debug),一个是发布版(release)。debug版本的sha1比较好获取,网上有介绍,这里

  • flutter Radio 单选框

    flutter Radio 单选框Flutter单选框

  • python操作Windows窗口程序

    python操作Windows窗口程序场景定时获取数据接口数据写入Excel表格,Excel需要被其他程序使用,需要处于开启状态。Pywin32首先,安装一个Pywin32,为python提供访问WindowsAPI的扩展,提供了齐全的windows常量、接口、线程以及COM机制等等。其次,为了方面查找目标窗口的句柄,可以下载一个微软自家的Spy++,这玩意儿满大街都是。有了它,还能很方便的查看窗体的消息。句柄是…

  • RGB图像深度_DⅴD图像一分为二是什么原因

    RGB图像深度_DⅴD图像一分为二是什么原因RGBD=RGB+  DepthMapRGB:RGB色彩模式是工业界的一种颜色标准,是通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红、绿、蓝三个通道的颜色,这个标准几乎包括了人类视力所能感知的所有颜色,是目前运用最广的颜色系统之一。 DepthMap:在3D计算机图形中,DepthMap(深度图)是包含与视点的场景对…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号