我们已经准备好了,你呢?

2024我们与您携手共赢,为您的企业形象保驾护航!

: --- 迭代来自多个输入流的行

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

典型用法是:

import fileinput
for line in fileinput.input(encoding="utf-8"):
    process(line)

此程序迭代 sys.argv[1:] 中列出的所有文件的行,如果列表为空,则迭代 sys.stdin。如果有名为“-”的文件,它也会被 sys.stdin 和可选参数模式替换并被忽略。要指定备用文件列表,请将其作为第一个参数传递给 input()。也允许使用单个文件。

默认情况下,所有文件都以文本模式打开,但你可以在调用 input() 或 时指定 mode 参数来覆盖此行为。如果在打开或读取文件时发生 I/O 错误,则会引发 .txt 错误。

在 3.3 版更改: 之前提出 ;现在它是 的别名。

如果 sys.stdin 被多次使用,后续使用将不会返回任何行,除非以交互方式使用或明确重置(例如,使用 sys.stdin.seek(0))。

空文件在打开后会立即关闭;只有在最后打开的文件为空时才会在文件列表中注意到它们。

返回的行不与换行符进行任何处理,这意味着文件中的最后一行可能没有换行符。

您可以通过将参数传递给 .input() 或 () 来提供打开钩子来控制文件的打开方式。钩子必须是一个接受两个参数和模式的函数,并返回以相应模式打开的类文件对象。如果指定了和/或,它们将作为附加关键字参数传递给钩子。此模块提供了一个 () 来支持压缩文件。

以下函数是该模块的初始接口:

.输入(文件=无,=False,='',*,模式='r',=无,=无,=无)

创建一个类的实例。此实例将用作此模块中函数的全局状态,并将在迭代期间返回。函数的参数将传递给类的构造函数。

实例可以用作 with 语句中的上下文管理器。在此示例中,即使发生异常,输入也会在 with 语句完成后关闭:

使用.input(files=('spam.txt','eggs.txt'),=“utf-8”)作为f:

对于 f 中的行:

(线)

在 3.2 版更改: 可以用作上下文管理器。

在 3.8 版更改: 关键字参数模式现在是仅限关键字的参数。

在 3.10 版更改: 添加了仅关键字参数和。

以下函数使用 .input() 创建的全局状态;如果没有活动状态,它们将会引发。

.()

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

.()

以整数形式返回当前文件描述符。如果文件未打开(在第一行和文件之间),则返回 -1。

.()

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

.()

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

.()

如果刚刚读取的行是所在文件的第一行,则返回 True,否则返回 False。

.()

如果读取的最后一行来自 sys.stdin,则返回 True,否则返回 False。

.()

关闭当前文件,以便下一次迭代将从下一个文件(如果存在)读取第一行;未从此文件读取的行将不计入累积计数。在读取下一个文件的第一行之前,文件名不会改变。在读取第一行之前,此功能无效;它不能用于跳过第一个文件。在读取最后一个文件的最后一行之后,此功能无效。

。关闭()

关闭序列。

该模块提供的实现序列行为的类也可以用于子类化:

类。(文件=无,=False,='',*,模式='r',=无,=无,=无)

如果给定,它必须是一个接受两个参数和模式的函数,并相应地返回一个打开的类文件对象。您不能同时使用和。

您可以指定并将其传递给 open() 或 。

实例可以用作 with 语句中的上下文管理器。在此示例中,即使发生异常,输入也会在 with 语句完成后关闭:

以 (files=('spam.txt', 'eggs.txt')) 作为输入:

(输入)

在 3.2 版更改: 可以用作上下文管理器。

在 3.8 版更改: 关键字参数模式现在是仅限关键字的参数。

在 3.10 版更改: 添加了仅关键字参数和。

在 3.11 版更改: 'rU' 和 'U' 模式以及 () 已成为。

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

该模块提供以下两个文件打开钩子:

.(,模式,*,=无,=无)

使用 gzip 和 bz2 模块透明地打开 gzip 和 bzip2 压缩文件(以扩展名 '.gz' 和 '.bz2' 标识)。如果文件扩展名不是 '.gz' 或 '.bz2',则文件将正常打开(即使用 open() 而不进行任何解压)。

该值传递给io.用于压缩文件和打开普通文件。

使用示例:fi = .(=., = "utf-8")

在 3.10 版更改: 添加了仅关键字参数和。

.(, =无)

返回一个钩子,对于通过 open() 打开的每个文件,使用给定的和来读取文件。

使用示例:fi = .(=.("utf-8", ""))

在 3.6 版更改: 添加了可选参数。

自 3.10 版起已弃用: 此函数已被弃用,因为 .input() 现在具有和参数。

二维码
扫一扫在手机端查看

本文链接:https://by928.com/6613.html     转载请注明出处和本文链接!请遵守 《网站协议》
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。

项目经理在线

我们已经准备好了,你呢?

2020我们与您携手共赢,为您的企业形象保驾护航!

在线客服
联系方式

热线电话

13761152229

上班时间

周一到周五

公司电话

二维码
微信
线