golang 读取文件最后一行_python3从零学习-5.4.3、文件输入流fileinput

源代码: Lib/fileinput.py


4186645649c4038bb104b1bf267e1213.png

此模块实现了一个辅助类和一些函数用来快速编写访问标准输入或文件列表的循环。 如果你只想要读写一个文件请参阅 open().

典型用法为:

import fileinputfor line in fileinput.input():    process(line)

这将遍历sys中列出的所有文件的行。argv[1:]如果列表是空的,默认为sys。如果文件名是'-',它也会被sys.stdin替换。要指定文件名的可选列表,请将其作为input()的第一个参数传递。也允许使用单个文件名。

所有文件都默认以文本模式打开,但你可以通过在调用 input() 或 FileInput 时指定 mode 形参来重载此行为。 如果在打开或读取文件时发生了 I/O 错误,将会引发 OSError。

在 3.3 版更改: 原来会引发 IOError;现在它是 OSError 的别名。

如果 sys.stdin 被使用超过一次,则第二次之后的使用将不返回任何行,除非是被交互式的使用,或都是被显式地重置 (例如使用 sys.stdin.seek(0))。

空文件打开后将立即被关闭;它们在文件列表中会被注意到的唯一情况只有当最后打开的文件为空的时候。

返回的行不会对换行符做任何处理,这意味着文件中的最后一行可能不带换行符。

想要控制文件的打开方式,你可以通过将 openhook 形参传给 fileinput.input() 或 FileInput() 来提供一个打开钩子。 此钩子必须为一个函数,它接受两个参数,filename 和 mode,并返回一个以相应模式打开的文件类对象。 此模块已经提供了两个有用的钩子。以下函数是此模块的初始接口:

fileinput.input(files=None, inplace=False, backup='', bufsize=0, mode='r', openhook=None)

创建一个FileInput的实例, 该实例将被用作此模块中函数的全局状态,并且还将在迭代期间被返回使用。 此函数的形参将被继续传递给 FileInput的构造器。FileInput实例可以用作with语句中的上下文管理器。在本例中,在退出with语句之后关闭输入,即使出现异常:with fileinput.input(files=('spam.txt', 'eggs.txt')) as f: for line in f: process(line)在 3.2 版更改: 可以被用作上下文管理器。Deprecated since version 3.6, will be removed in version 3.8: bufsize 形参。

下列函数会使用 fileinput.input() 所创建的全局状态;如果没有活动的状态,则会引发 RuntimeError。

fileinput.filename()

返回当前被读取的文件名。 在第一行被读取之前,返回 None。

fileinput.fileno()返回以整数表示的当前文件“文件描述符”。 当未打开文件时(处在第一行和文件之间),返回 -1。

fileinput.lineno()

返回已被读取的累计行号。 在第一行被读取之前,返回 0。 在最后一个文件的最后一行被读取之后,返回该行的行号。

fileinput.filelineno()

返回当前文件中的行号。 在第一行被读取之前,返回 0。 在最后一个文件的最后一行被读取之后,返回此文件中该行的行号。

fileinput.isfirstline()

如果刚读取的行是其文件的第一行,则返回true,否则返回false。

fileinput.isstdin()

如果最后一行是从sys.stdin读取的,则返回true。否则返回false。

fileinput.nextfile()

关闭当前文件以使下次迭代将从下一个文件(如果存在)读取第一行;不是从该文件读取的行将不会被计入累计行数。 直到下一个文件的第一行被读取之后文件名才会改变。 在第一行被读取之前,此函数将不会生效;它不能被用来跳过第一个文件。 在最后一个文件的最后一行被读取之后,此函数将不再生效。

fileinput.close()

关闭序列。

此模块所提供的实现了序列行为的类同样也可用于子类化:

class fileinput.FileInput(files=None, inplace=False, backup='', bufsize=0, mode='r', openhook=None)类 FileInput 是一个实现;它的方法 filename(), fileno(), lineno(), filelineno(), isfirstline(), isstdin(), nextfile() 和 close() 对应于此模块中具有相同名称的函数。 此外它还有一个 readline() 方法可返回下一个输入行,以及一个 __getitem__() 方法,该方法实现了序列行为。 这种序列必须以严格的序列顺序来读写;随机读写和 readline() 不可以被混用。通过 mode 你可以指定要传给 open() 的文件模式。 它必须为 'r', 'rU', 'U' 和 'rb' 中的一个。openhook 如果给出则必须为一个函数,它接受两个参数 filename 和 mode,并相应地返回一个打开的文件类对象。 你不能同时使用 inplace 和 openhook。FileInput实例可以用作with语句中的上下文管理器。在本例中,在退出with语句之后关闭输入,即使出现异常:with FileInput(files=('spam.txt', 'eggs.txt')) as input: process(input)在 3.2 版更改: 可以被用作上下文管理器。3.4 版后已移除: 'rU' 和 'U' 模式。Deprecated since version 3.6, will be removed in version 3.8: bufsize 形参。

可选的原地过滤: 如果传递了关键字参数 inplace=True 给 fileinput.input() 或 FileInput 构造器,则文件会被移至备份文件并将标准输出定向到输入文件(如果已存在与备份文件同名的文件,它将被静默地替换)。 这使得编写一个能够原地重写其输入文件的过滤器成为可能。 如果给出了 backup 形参 (通常形式为 backup='.'),它将指定备份文件的扩展名,并且备份文件会被保留;默认情况下扩展名为 '.bak' 并且它会在输出文件关闭时被删除。 在读取标准输入时原地过滤会被禁用。

此模块提供了以下两种打开文件钩子:

fileinput.hook_compressed(filename, mode)

使用 gzip 和 bz2 模块透明地打开 gzip 和 bzip2 压缩的文件(通过扩展名 '.gz' 和 '.bz2' 来识别)。 如果文件扩展名不是 '.gz' 或 '.bz2',文件会以正常方式打开(即使用 open() 并且不带任何解压操作)使用示例: fi = fileinput.FileInput(openhook=fileinput.hook_compressed)

fileinput.hook_encoded(encoding, errors=None)

返回一个通过 open() 打开每个文件的钩子,使用给定的 encoding 和 errors 来读取文件使用示例: fi = fileinput.FileInput(openhook=fileinput.hook_encoded("utf-8", "surrogateescape"))在 3.6 版更改: 添加了可选的 errors 形参。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/528621.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

云计算机具体应用场景,云计算的定义、类型及应用场景

云计算是20年来IT行业出现的最激动人心且最具颠覆性的技术,甚至比大型主机向客户端/服务器架构的迁移还更具颠覆性。无论是IT服务的交付方式,还是企业消费这些IT服务的方式,都因云计算而改变。用户也正在快速应对新架构带来的变革&#xff0c…

dataframe for循环 筛选_Python循环12种超强写法,又快又省内存

0 前言说到处理循环,我们习惯使用for, while等,比如依次打印每个列表中的字符:在打印内容字节数较小时,全部载入内存后,再打印,没有问题。可是,如果现在有成千上百万条车辆行驶轨迹,…

html5文字飞入插件,jquery使用CSS3实现文字动画效果插件Textillate.js

jquery使用CSS3实现文字动画效果插件Textillate.jsTextillate是一款基于CSS3动画效果的 JavaScript 库,您可非常轻轻松地把这些动画效果应该于网页中的任何文字。使用方法引入核心文件构建html标签My Title写入JS,初始化$(function () {$(.tlt).textilla…

工业机器人导轨 百度文库_工业机器人或许开创一个全新的PLC时代

自机器人诞生之日起人们就不断地尝试着说明到底什么是机器人。但随着机器人技术的飞速发展和信息时代的到来,机器人所涵盖的内容越来越丰富,机器人的定义也不断充实和创新。机器人技术作为20世纪人类最伟大的发明之一,自20世纪60年代初问世以…

银联分账与银联代付_第三方分账系统到底有哪些作用?

随着监管越来越严,业务越来越复杂,所有平台电商企业都需要通过第三方分账系统解决支付清算及二清等问题。作为第三方分账系统行业从业者,整理了部分关于系统的相关问题及解答,希望对大家有所帮助。问题一:第三方分账系…

计算机更改桌面,2010年职称计算机考试:更改桌面背景和颜色

Windows XP提供了各种桌面的颜色和背景方案,用户可以根据自己的爱好进行选择。颜 色充当桌面的最底层,背景覆盖于颜色之上。(l)桌面背景的更改在"显示属性"对话框中,选择"桌面"选项卡。在"桌面"选项卡上有一个"背景"列表框,选择列表框…

dell t40 固态系统盘_笔记本怎么安装固态硬盘 笔记本安装固态硬盘教程【详解】...

首先我不得不介绍一下我这古董级别的笔记本 硬件升级,然后给大家介绍一下笔记本安装固态硬盘的教程。dell戴尔1320,cpu t6500 主频2.1ghz 。内存运用了淘汰的ddr2 分别是两条1g,共2g 800频率。这样的古董用的着用固态么?SATA2.0接口完全成为…

如何进入zabbix的wab界面_如何不用光盘重装系统呢?

如果身边没有系统光盘如何重装系统呢?小鱼系统可以帮助你一键重装系统和U盘重装系统的方法,下面一起看下小鱼系统教你的如何不用光盘重装系统吧。一键重装系统方法1、首先请备份好电脑C盘重要资料,然后打开【小鱼系统】,进入电脑环…

全国高中计算机大赛,2019年含金量最大的中小学全国性竞赛活动——五大学科竞赛...

五大学科竞赛历史是我国含金量最高的中小学全国性竞赛活动,在各高校自主招生过程中,具有较高的参考价值。对相关方面有一定兴趣的同学,也可以积极参与。五大赛面向的对象都是高中学生。一、全国中学生数学奥林匹克竞赛此项竞赛的主办单位是中…

单片机红绿灯电路灯有几种_新农村建设的太阳能路灯如何选择?

随着我国城乡一体化发展进程,城乡道路照明已成为新农村建设必不可少的一部分。目前市面通用的道路照明有两种:即市电路灯照明(市电220V)和太阳能路灯照明。安装简便且不需要布线的太阳能路灯在新农村建设中应用广泛,下…

lr不能直接转ps编辑_摄影后期调色软件,Lr软件包

摄影后期调色除了用到PS软件还有一款与之媲美的就是LR软件了,全名是Adobe Lightroom,喜欢拍照的人;总会希望自己拍下来的照片更好看,不管是多好的器材直出的 jpg 本身总会多多少少有一些限制,而利用后期软件可以很好的…

hive中如何把13位转化为时间_重要知识点收藏 | Hive常用函数大全

关系运算1、等值比较: 语法&#xff1a;AB操作类型&#xff1a;所有基本类型描述: 如果表达式A与表达式B相等&#xff0c;则为TRUE&#xff1b;否则为FALSE举例&#xff1a;hive>select 1 from lxw_dual where 11;12、不等值比较: <>语法: A <> B操作类型: 所有…

一加6html查看程序,一加6T评测:极速屏下指纹,解锁你想要的轻快顺滑

【PConline 评测】作为年末旗舰机阵营的新成员&#xff0c;一加6T选在11月5日正式在国内市场亮相。这款充满极客味道的手机早期已经获得了许多海外用户的好评和关注&#xff0c;全新加入的光感屏幕指纹&#xff0c;历来以轻快流畅著称的系统体验&#xff0c;让一加6T再一次成为…

all方法 手写promise_promise.all的实现

今天自己来实现一下promise.all方法的实现; 先来看MDN官网对promise.all方法的介绍: 简单理解,当参数中的promise有一个失败了就直接返回失败的结果,返回第一个失败的结果,都成功返回所有的参数结果; 上代码: function promiseAll(promises){// 返回一个promise实例retu…

七代处理器装win7_为啥新电脑没法装windows7系统?解决方法总会有的

这两年购买新电脑的用户&#xff0c;常常会来问小白问什么不能安装win7系统。之前很多解释都是把矛头直接归咎于主板&#xff0c;但其实这得找Intel&#xff0c;第六代Intel处理器以后所使用的主板(100芯片组系列主板)采用了最新的XHCI主控接口&#xff0c;不再内置win7所需要的…

计算机的服务如何还原,电脑怎么样还原到出厂设置

电脑要还原出厂设置&#xff0c;我们可以重装系统或者重置BIOS设置来实现。下面由学习啦小编为大家整理了电脑怎么样还原到出厂设置的方法步骤&#xff0c;希望对大家有帮助!电脑怎么样还原到出厂设置电脑还原出厂设置的方法一、重装系统1通过百度搜索360安全卫士下载&#xff…

android 已经给权限读取照片 还是提示无法读取照片_iPhone无法访问照片,一招教你解决...

经常使用iOS系统的&#xff0c;在打开软件需要进行加载或者保存图片的时候&#xff0c;却提示无法正常访问照片。这是怎么回事呢&#xff1f;设置教程首先前往【设置】--【隐私】点击【照片】。选择需要进行访问的APP&#xff0c;再点击【读取和写入】。如果觉得不错的话&#…

几何画板手机版_运用几何画板解决动点最值问题(二)

授 课 专 家邵新虎&#xff1a;几何画板课程建设和应用专家&#xff0c;陕西省第十一届基础教育教学成果特等奖获得者&#xff0c;陕西省基础教育教学成果评审专家&#xff0c;陕西师范大学数学与信息科学学院数学教育系列建设专家和讲授专家&#xff0c;国培和省培授课专…

征途2助手网关服务器,【征途2】官方网站-《征途2》夏日激情来袭,清凉一夏版本送限定套装...

昭德三十四年龙泽臣微服出巡时&#xff0c;遭遇大雪封山&#xff0c;绝境之下偶遇神秘隐士&#xff0c;两人连数日拥炭长谈天下时局&#xff0c;互相引为莫逆。归朝后&#xff0c;龙泽臣不日就宣布招百万民夫急建龙牙关。六月&#xff0c;倾举国之力同时南征北伐&#xff0c;此…

航测大数据量处理_揭秘航测局“航空摄影质量自动检查系统”的“黑科技”

前不久&#xff0c;中国科协向全国发布了《2019前沿领域科技成果推介手册》&#xff0c;将当前国内最为前沿的研究成果向社会推介。入选该手册的135项成果&#xff0c;是由相关专家从92个全国学会和地方科协推荐的1000余项前沿领域待转化科技成果中遴选出&#xff0c;突出成果的…