爬虫(四十六)通用标准库 queue(三十七)
fileinput模块用于对标准输入或多个文件进行逐行遍历。这个模块的使用非常简单,相比open()方法批量处理文件,fileinput模块可以对文件、行号进行一定的控制。
典型的用法:
import fileinputfor line in fileinput.input():process(line)
如果代码中没有指定操作的文件对象,则默认是从stdin获得的sys.argv[1:]
中的参数。
基本方法
fileinput.input(files=None, inplace=False, backup='', bufsize=0, mode='r', openhook=None)
创建并返回一个FileInput类的实例。files
指定要处理的文件,可以是一个多元元组,表示按顺序批量处理元组内文件。inplace
参数最关键,可设置是否对源文件进行修改;backup
则用于指定对源文件进行备份的后缀名;mode
用于指定文件读写方式,和open()方法的定义一样, 默认为只读‘r’。同样的,fileinput.input()
方法也可以作为一个上下文管理器使用,如下所示:
with fileinput.input(files=('spam.txt', 'eggs.txt')) as f:for line in f:process(line)
这将保证input会在with语句结束之后被关闭,无论期间是否抛出过异常,确保文件安全。
主要属性
fileinput.filename()
返回当前正在处理的文件名(也就是包含了当前正在处理的文本行的文件)
fileinput.fileno()
返回当前文件的总行数。
fileinput.lineno()
返回当前的行数,这个行数是累计的。多个文件的行数会累加起来。
fileinput.filelineno()
返回当前正在处理的文件的当前行数。每次处理完一个文件并开始处理下一个文件时,该值会重置为1,重新开始计数。
fileinput.isfirstline()
当前行是当前文件的第一行时返回True,否则False
fileinput.isstdin()
当前操作对象为sys.stdin
时返回True否则False。
fileinput.nextfile()
关闭当前的文件,跳到下一个文件,跳过的行不计数。
fileinput.close()
关闭整个文件链,结束迭代。
实例展示
现在有一个1.txt文件,内容如下:
愿圣光与你同在!为了部落!兽人永不为奴!你们这是自寻死路!复活吧我的勇士!为你而战我的女士!
我们的需求是为每一行添加“#行号”。
import fileinputwith fileinput.input(files="d:\\1.txt") as f:for line in f:line = line.rstrip()num = fileinput.lineno()print("#%d\t%s" % (num, line))
运行结果是:
#1 愿圣光与你同在!
#2
#3 为了部落!
#4
#5 兽人永不为奴!
#6
#7 你们这是自寻死路!
#8
#9 复活吧我的勇士!
#10
#11 为你而战我的女士!
如果你想同步修改源文件,添加inplace=True
参数即可,但一定要小心,请确认自己的行为,防止误操作!
请继续关注我
记得点赞加关注哦,记得加鸡腿啊
爬虫(四十六)通用标准库 queue(三十七)相关推荐
- 爬虫 (三十九) 常用标准库 OS (三十)
长文预警 阅读约5分钟 相信如果你慢慢把这篇文章读完,然后合并实践 经过上述三节,穿插讲了一下HTTP的知识点,以及浏览器的界面资源的获取,以及运行过程,我们可以收获到很多东西,如果没有好好看的伙 ...
- IOS音视频(四十六)离线在线语音识别方案
IOS音视频(四十六)离线在线语音识别方案 IOS音视频(四十六)离线在线语音识别方案 方案一:Siri语音识别 Siri语音识别简介 Siri语音识别功能类介绍 Siri语音识别功能集成 方案二:百 ...
- 第四十六章:SpringBoot RabbitMQ完成消息延迟消费
在2018-3-1日SpringBoot官方发版了2.0.0.RELEASE最新版本,新版本完全基于Spring5.0来构建,JDK最低支持也从原来的1.6也改成了1.8,不再兼容1.8以下的版本,更 ...
- 【正点原子STM32连载】第四十六章 FATFS实验 摘自【正点原子】MiniPro STM32H750 开发指南_V1.1
1)实验平台:正点原子MiniPro H750开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=677017430560 3)全套实验源码+手册+视频 ...
- Python编程基础:第四十六节 super函数Super Function
第四十六节 super函数Super Function 前言 实践 前言 使用super函数可以在子类中直接调用父类的方法.通常情况下,我们会将一些通用的属性或方法定义在父类中,子类可以直接使用父类中 ...
- OpenCV学习笔记(四十六)——FAST特征点检测features2D OpenCV学习笔记(四十七)——VideoWriter生成视频流highgui OpenCV学习笔记(四十八)——PCA算
OpenCV学习笔记(四十六)--FAST特征点检测features2D 特征点检测和匹配是计算机视觉中一个很有用的技术.在物体检测,视觉跟踪,三维常年关键等领域都有很广泛的应用.这一次先介绍特征点检 ...
- pdfstamper生成pdf无法显示汉字_正点原子STM32F4/F7水星开发板资料连载第四十六章 汉字显示实验...
1)实验平台:正点原子水星 STM32F4/F7 开发板 2)摘自<STM32F7 开发指南(HAL 库版)>关注官方微信号公众号,获取更多资料:正点原子 3)全套实验源码+手册+视频下载 ...
- 四十六、Fluent壁面函数的选取依据
1. Fluent壁面函数 前面介绍了壁面函数的由来及相关的理论,这里我们介绍Fluent中壁面函数的选取依据.牢记:使用壁面函数的前提是y+>15 Fluent在两种湍流模型中需要选择壁面函数 ...
- 【Visual C++】游戏开发笔记四十六 浅墨DirectX教程十四 模板测试与镜面特效专场
本系列文章由zhmxy555(毛星云)编写,转载请注明出处. 文章链接: http://blog.csdn.net/zhmxy555/article/details/8632184 作者:毛星云( ...
最新文章
- Linux 下 pmap 命令的使用
- 三值的排序 Sorting a Three-Valued Sequence
- 年终总结 | 2021红包点赞?(文末有刺激的福利哦)
- Linux 中的远程登陆
- python中的成员运算符_在Python中使用成员运算符的示例
- 政策推动加速5G发展 全球统一标准成大势所趋
- childactor movable
- EclipseIDEA使用经验
- 1.1介绍线程和运行(Introducing Thread and Runnable)
- HDU 2686 MCMF
- 银监计算机类考试题库,干货!国考银监会财经类面试题库
- nyoj248 BUYING FEED(贪心orDP)
- Apollo入门使用手册
- MySql创建联合索引
- java例外站点添加不上,java例外站点添加不了
- Typora自定义主题#简约风主题
- Oracle 11G 的客户端,不再支持连接到ORACLE 8I
- 【海岛吉他7】吉他琴弦间音程度数关系
- STM32f103C8定时器输出PWM波信号
- android 日倒计时计算器,分秒倒数日app下载-分秒倒数日(时间计算器)安卓版下载 v2.0.0安卓版_5577安卓网...