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 ~]#

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

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 用户态与内核态之间切换详解[通俗易懂]

    用户态与内核态之间切换详解[通俗易懂]用户态切换到内核态CPU中有一个标志字段,标志着线程的运行状态。用户态和内核态对应着不同的值,用户态为3,内核态为0.每个线程都对应着一个用户栈和内核栈,分别用来执行用户方法和内核方法。用户方法就是普通的操作。内核方法就是访问磁盘、内存分配、网卡、声卡等敏感操作。当用户尝试调用内核方法的时候,就会发生用户态切换到内核态的转变。切换流程:1、每个线程都对应这一个TCB,TCB中有一个TSS字段,存储着线程对应的内核栈的地址,也就是内核栈的栈顶指针。2、因为从用户态切换到内核态时,需要将用户态.

    2022年9月17日
    3
  • 基于QT播放器的实现(一)Rgb、YUV格式(附带代码)

    基于QT播放器的实现(一)Rgb、YUV格式(附带代码)基于QT播放器的实现(一)Rgb、YUV格式色度空间转换YUV转RGB的公式对本地RGB32视频图像的播放色度空间转换YUV颜色模型其实常用于视频传输和图像压缩。由于人类的眼睛,对亮度的敏感度远超过对色彩的敏感度,所以视频传输过程中,为了减小带宽,通常将色彩分量UV的比例减小,以达到降低带宽的目的。这就出现了YUV4:4:4、YUV4:2:2、YUV4:1:1等格式。RGB32使用32位来…

    2022年6月1日
    42
  • oracle 方法函数,执行oracle函数的四种方法

    oracle 方法函数,执行oracle函数的四种方法最近在对数据库进行从sqlSERVER改造到ORACLE过程中遇到了一个头疼的问题,sqlSERVER可以返回一个结构化的数据集,ORACLE函数不行,要执行函数(含返回值),函数过程中将语句插进事务性临时表里再读取临时表找到如下资料,执行ORACLE函数的方法:1.在定义函数时:如果有参数,则参数可有类型但是不加长度。2.在执行函数:var/variablevar_namevar_type…

    2022年7月17日
    14
  • linux解压zip多种命令,Linux常用几种打包、压缩、解压命令,(备用)

    linux解压zip多种命令,Linux常用几种打包、压缩、解压命令,(备用)01-.tar格式解包:[*******]$tarxvfFileName.tar打包:[*******]$tarcvfFileName.tarDirName(注:tar是打包,不是压缩!)02-.gz格式解压1:[*******]$gunzipFileName.gz解压2:[*******]$gzip-dFileName.gz压缩:[*******]$gzipFile…

    2022年6月1日
    40
  • restful api接口规范和服务调用的区别_rest接口规范

    restful api接口规范和服务调用的区别_rest接口规范RESTful发展背景及简介网络应用程序,分为前端和后端两个部分。当前的发展趋势,就是前端设备层出不穷(手机、平板、桌面电脑、其他专用设备…)。因此,必须有一种统一的机制,方便不同的前端设备与后端进行通信。这导致API构架的流行,甚至出现"APIFirst"的设计思想。RESTfulAPI是目前比较成熟的一套互联网应用程序的API设计理论。REST(RepresentationalStat…

    2022年9月18日
    3
  • 如何区别标准POE交换机和非标POE交换机[通俗易懂]

    如何区别标准POE交换机和非标POE交换机[通俗易懂]通俗的说,POE交换机就是支持网线供电的交换机,其不但可以实现普通交换机的数据传输功能还能同时对网络终端进行供电。那么,我们该如何来区别如何区别标准POE交换机和非标POE交换机呢?接下来我们就跟随飞畅科技的小编一起来详细看看吧!一、什么是POE交换机PoE供电交换机是指能够通过网线为远端受电终端提供网络供电的交换机,包含网络交换机和PoE供电两个功能,是PoE供电系统中比较常见的供电设备。二、POE交换机的分类1、标准POE交换机符合IEEE802.3af、802.3at标准,就是标准P..

    2022年10月4日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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