python fileinput_python模块fileinput

python fileinput_python模块fileinput在python脚本语言中的fileinput模块可以对一个或多个文件的内容进行迭代,编历操作.常用的函数:fileinput.input()#读取文件的内容fileinput.filename()#文件的名称fileinput.lineno()#当前读取行的数量fileinput.filelineno()#读取行的行号fileinput.isfir…

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

python脚本语言中的fileinput模块可以对一个或多个文件的内容进行迭代,编历操作.

常用的函数:

fileinput.input()          #读取文件的内容

fileinput.filename()    #文件的名称

fileinput.lineno()        #当前读取行的数量

fileinput.filelineno()   #读取行的行号

fileinput.isfirstline()   #当前行是否是文件第一行

fileinput.isstdin()       #判断最后一行是否从stdin中读取

fileinput.close()         #关闭队列

1.加载fileinput模块和使用input属性

格式:

input(files=None, inplace=0, backup=”, bufsize=0, mode=’r’, openhook=None)

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

inplace:是否将标准输出的结果写回文件

backup:备份文件的扩展名,只定义扩展名

bufsize:缓冲区的大小,默认是0

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

openhook:控制打开的文件

2.备份文件内容

[root@node1 ~]# vim 1.py

#!/bin/env python

#! _*_ coding:utf8 _*

import fileinput

for line in fileinput.input(‘qwe.py’,’/root/1.txt’,’.back’):     #.back是备份后文件的后缀

print line,        #后面逗号表示不换行

[root@node1 ~]# python 1.py  qwe.py

[root@node1 ~]# ll qwe.py*

-rwxr-xr-x 1 root root 315 Jun 21 18:10 qwe.py

-rwxr-xr-x 1 root root 315 Jun 21 18:07 qwe.py.back

[root@node1 ~]#

3.格式化输出

[root@node1 ~]# vim 1.py

#!/bin/env python

#! _*_ coding:utf8 _*

import fileinput

for i in fileinput.input():

print fileinput.filename(),’|’,’Line Number:’,’|’,fileinput.lineno(),’|:’,i.lstrip(),

[root@node1 ~]# python 1.py  qwe.py

qwe.py | Line Number: | 1 |: #!/bin/env python

qwe.py | Line Number: | 2 |: #!-*- coding:UTF-8 -*-

qwe.py | Line Number: | 3 |:  qwe.py | Line Number: | 4 |: def lines(file):

qwe.py | Line Number: | 5 |: for line for file:

qwe.py | Line Number: | 6 |: yield line

qwe.py | Line Number: | 7 |: yield ‘\n’

qwe.py | Line Number: | 8 |:  qwe.py | Line Number: | 9 |: def blocks(file):

qwe.py | Line Number: | 10 |: blosk=[]

qwe.py | Line Number: | 11 |: for line in lines(file):

qwe.py | Line Number: | 12 |: if line.strip():

qwe.py | Line Number: | 13 |: block.append(line)

qwe.py | Line Number: | 14 |: elif block:

qwe.py | Line Number: | 15 |: yield ”.join(block).strip()

qwe.py | Line Number: | 16 |: block=[]

4.修改文件内容

[root@node1 ~]# vim 1.py

def process(line):

return line.rstrip()+’   line’

for line in fileinput.input([‘1.txt’,’2.txt’],inplace=1):

print process(line)

[root@node1 ~]# python 1.py 1.txt

[root@node1 ~]# cat 1.txt

1111   line

2222   line

3333   line

4444   line

[root@node1 ~]# cat 2.txt

777   line

888   line

999   line

[root@node1 ~]#

5.查找文件中的内容

[root@node1 ~]# vim 1.py

#!/bin/env python

#! _*_ coding:utf8 _*

import fileinput

import sys

import re

a=’d{2}:d{2}:d{2}’

for i in fileinput.input(‘/var/log/yum.log’,backup=’.back’,inplace=1):

if re.search(a,i):

sys.stdout.write(line)

[root@node1 ~]# python 1.py

[root@node1 ~]# ll /var/log/yum.log*

-rw——-  1 root root     0 Jun 21 18:36 /var/log/yum.log

-rw——-  1 root root   640 Jun  3 11:39 /var/log/yum.log.back

[root@node1 ~]#

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

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

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

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

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

(0)


相关推荐

  • Jenkins安装_leeroy jenkins

    Jenkins安装_leeroy jenkins前言jenkins的环境搭建方法有很多,本篇使用docker快速搭建一个jenkins环境。环境准备:mac/Linuxdockerdocker拉去jenkins镜像先下载jenkins镜

  • 数组和链表的区别,各有何优缺点

    数组和链表的区别,各有何优缺点链表与数组的区别(1)数组的元素个数是固定的,而组成链表的结点个数可按需要增减;(2)数组元素的存诸单元在数组定义时分配,链表结点的存储单元在程序执行时动态向系统申请;(3)数组中的元素顺序关系由元素在数组中的位置(即下标)确定,链表中的结点顺序关系由结点所包含的指针来体现。(4)对于不是固定长度的列表,用可能最大长度的数组来描述,会浪费许多内存空间。(5)对于元素的插人、删除操作非常频繁的列表处理场合,用数组表示是不适宜的。若用链表实现,会使程序结构清晰,处理的方法也较为简便。数组的优点随机

  • WPF Visifire使用

    WPF Visifire使用引言:  由于项目中需要使用Visifire所以自己就写了一些demo,大家一起共享!基础Visifire图表的展示1.Visifire的创建需要引用的DLL包【WPFToolkit.dll;WPFVisifire.Charts;WPFVisifire.Gauges(这个以后会用到)】2.我们开始创建简单的Visifire图表第一步:前台代码

  • hive like与rlike的区别

    hive like与rlike的区别like与rlike的区别:like不是正则,而是通配符。这个通配符可以看一下SQL的标准,例如%代表任意多个字符。rlike是正则,正则的写法与java一样。’\’需要使用’\\’,例如’\w’需要使用’\\w’hive>select”aaaaa”like”%aaa%”fromtest_structlimit10;Totaljobs=1…OK

  • [已发表,转载勘误]Android upx脱壳「建议收藏」

    [已发表,转载勘误]Android upx脱壳「建议收藏」已发在https://www.anquanke.com/post/id/197643不过有部分内容发布之后无法编辑,勘误后如下。Androidupx脱壳写在前面因为我不是pc平台过来的,而是直接从Android入门的,所以upx壳其实一开始并不了解,后来接触到,但是可以直接动态调试或者做个内存快照,对我来说加没加upx其实对我逆向分析影响不大。另一方面upx壳因为开源且其实有很多脱壳的教…

  • 单片机控制步进电机

    单片机控制步进电机简介:用单片机控制步进电机正转反转加速减速;由LCD1602实时显示步进电机的状态;F-正转,B-反转;数字越大,转速越大;仿真原理图如下:MCU和LCD1602显示模块:ULN2803驱动和步进电机模块:C语言代码如下:/*—————————–FileName:StepperMotor.hFunction:函数头文件Autho…

发表回复

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

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