python fileinput_python模块fileinput
大家好,又见面了,我是你们的朋友全栈君。
在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.cn/136538.html原文链接:https://javaforall.cn
相关文章
- Python项目45-前后端分离Home主页及后台(开撸)
- pythoncharm解释器_pycharm自带python
- 为什么python读取不了文件_python系统找不到指定文件怎么办
- Python基础11-迭代器,生成器
- Pycharm的python interpreter选择「建议收藏」
- pycharm查找替换快捷键_python查找指定字符串并替换
- python包合集-shutil
- 【过程记录】python环境离线迁移
- pycharm所有文件中查找_python查找文件
- pycharm虚拟环境与本地环境区别_python如何激活虚拟环境
- pycharm怎么配置python环境anaconda_编译环境是什么
- python进入文件目录 命令_python创建目录
- python 函数、运算符以及运算符优先级
- b站动漫_python爬b站视频
- python ssh连接_pycharm显示no module named
- pycharm配置Python环境_用虚拟机在D盘创建一个虚拟环境
- Python 虚拟环境 Virtualenv 分别在 Windows 和 Linux 上的安装和使用
- 使用 setup.py 将 Python 库打包分发到 PyPI 踩坑指南
- pycharm中使用anaconda部署python环境_anaconda创建python虚拟环境
- python线性回归算法「建议收藏」