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)
上一篇 2022年5月4日 下午6:00
下一篇 2022年5月4日 下午6:00


相关推荐

  • 微信开放平台开发——网页微信扫码登录(OAuth2.0)

    微信开放平台开发——网页微信扫码登录(OAuth2.0)

    2021年10月27日
    42
  • VERTU:匠心传承,融合智慧AI

    VERTU:匠心传承,融合智慧AI

    2026年3月15日
    2
  • 怎么让Java输入字符串_怎么让Java获取用户输入的字符串[通俗易懂]

    怎么让Java输入字符串_怎么让Java获取用户输入的字符串[通俗易懂]从控制台动态输入数据,对数据进行各种各样的处理,然后将数据输出是很常见的操作。现在对数据的输入方式进行系统的介绍:Scanner类的调用相关方法:hasNext()判断扫描器中当前扫描位置后是否还存在下一段。hasNextLine()如果在此扫描器的输入中存在另一行,则返回true。next()查找并返回来自此扫描器的下一个完整标记。nextLine()此扫描器执行当前行,并返回跳过的输入信息。…

    2022年7月7日
    24
  • (备忘)卸载微软自带输入法

    (备忘)卸载微软自带输入法下载完 office2010 以后 对其自带的输入法不习惯 一直要切换输入法 很是不方便 方法 1 原网址 https jingyan baidu com article 48206aeafcdc html1 首先 点击开始菜单 在开始菜单右边可以看到控制板面 点击运行 2 在运行起来的控制板面中可以看到程序 程序卸载 点击运行 点击后会出现三个选项 点击程序和功

    2026年3月26日
    2
  • batch内负采样

    batch内负采样一般在计算softmax交叉熵时,需要用tf.nn.log_uniform_candidate_sampler多itemid做随机负采样。但是在类似dssm这种双塔模型中,item侧特征除了itemid外,还有其他meta特征,此时负样本对itemid做负采样后,还需要取相应负样本的meta特征。可是在tf训练数据中并不方便建立itemid与各类meta特征的映射表。为了解决dssm类模型的负采样问题,可以取一个batch内其他用户的正样本做为本用户的负样本,以解决负采样meta特征问题。好了,废话少说,

    2022年6月23日
    75
  • sha1给出了三种新的sha版本_开发版和稳定版哪个好

    sha1给出了三种新的sha版本_开发版和稳定版哪个好在进行百度地图等地图开发时,需要申请一个SHA1,方法流程如下:1.找到文件debug.keystore所在位置,一般在C盘的.android目录下。2.使用jdk自带的keytool工具。3.进入win+r输入cmd进入cmd窗口,进入debug.keystore所在目录,使用keytool工具,示例:C:\Users\SYY\.android>D:\SYYData\.download\IDEA-C\jdks\bin\keytool-list-v-keystoredebug.keys

    2022年8月11日
    9

发表回复

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

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