非常教程

Python参考手册

文件和目录访问 | File & Directory Access

fileinput

源代码: Lib / fileinput.py

该模块实现了一个辅助类和函数,可以在标准输入或文件列表上快速编写循环。如果您只想读取或写入一个文件,请参阅open()

典型的用途是:

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

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

所有的文件都在文本模式下,默认打开的,但你可以通过指定覆盖此模式在调用参数input()FileInput()。如果在打开或读取文件期间发生I / O错误,IOError则会引发。

如果sys.stdin多次使用,第二次和以后的使用将不会返回任何行,除了可能用于交互式使用,或者它已被明确重置(例如使用sys.stdin.seek(0))之外。

空文件打开并立即关闭; 他们出现在文件名列表中的唯一时刻是显而易见的,那就是最后打开的文件是空的。

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

您可以控制文件是由通过设置开口钩打开openhook参数fileinput.input()FileInput()。钩子必须是一个函数,它接受两个参数,即文件名模式,并返回相应打开的类文件对象。这个模块已经提供了两个有用的钩子。

以下功能是该模块的主要界面:

fileinput.input([files[, inplace[, backup[, bufsize[, mode[, openhook]]]]]])

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

在版本2.5中进行了更改:添加了模式openhook参数。

在版本2.7.12中更改:不再使用bufsize参数。

以下功能使用创建的全局状态fileinput.input(); 如果没有活动状态,RuntimeError则提出。

fileinput.filename()

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

fileinput.fileno()

返回当前文件的整数“文件描述符”。当没有文件打开时(在第一行之前和文件之间),返回-1

2.5版本中的新功能。

fileinput.lineno()

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

fileinput.filelineno()

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

fileinput.isfirstline()

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

fileinput.isstdin()

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

fileinput.nextfile()

关闭当前文件,以便下一次迭代将读取下一个文件的第一行(如果有的话); 不从文件读取的行数不会计入累计行数。只有在读取下一个文件的第一行之后,文件名才会更改。在阅读第一行之前,此功能无效;它不能用于跳过第一个文件。读完最后一个文件的最后一行后,此功能不起作用。

fileinput.close()

关闭序列。

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

class fileinput.FileInput([files[, inplace[, backup[, bufsize[, mode[, openhook]]]]]])

FileInput是实现; 它的方法filename()fileno()lineno()filelineno()isfirstline()isstdin()nextfile()close()对应于所述模块中的相同名称的功能。另外它有一个readline()返回下一个输入行的__getitem__()方法和一个实现序列行为的方法。序列必须严格按顺序访问; 随机访问并readline()不能混合使用。

使用模式,您可以指定将传递给哪个文件模式open()。它必须是一个'r''rU''U''rb'

openhook,当给出时,必须是一个函数,它有两个参数,文件名模式,并返回相应的打开的文件对象。您不能使用就地openhook在一起。

在版本2.5中进行了更改:添加了模式openhook参数。

在版本2.7.12中更改:不再使用bufsize参数。

可选就地过滤:如果将关键字参数inplace=1传递给构造函数fileinput.input()或将其传递给FileInput构造函数,则文件将移至备份文件,并将标准输出定向至输入文件(如果与备份文件具有相同名称的文件已存在,它会被静静地取代)。这使得可以编写一个过滤器来重写其输入文件。如果给出备份参数(通常为backup='.<some extension>'),则它指定备份文件的扩展名,并且备份文件保留在附近; 默认情况下,扩展名是'.bak'当输出文件关闭时被删除。当读取标准输入时,就地过滤被禁用。

注意

当前实现不适用于MS-DOS 8 + 3文件系统。

以下两个打开挂钩由该模块提供:

fileinput.hook_compressed(filename, mode)

透明地打开使用gzip和bzip2压缩的文件(由扩展程序识别)'.gz''.bz2'使用gzipbz2模块。如果文件扩展名不是'.gz''.bz2',文件是正常打开的(即,open()没有任何解压缩)。

Usage example: fi = fileinput.FileInput(openhook=fileinput.hook_compressed)

2.5版本中的新功能。

fileinput.hook_encoded(encoding)

返回一个打开每个文件的钩子io.open(),使用给定的编码读取文件。

用法示例: fi = fileinput.FileInput(openhook=fileinput.hook_encoded("iso-8859-1"))

注意

有了这个钩子,FileInput可能会根据指定的编码返回Unicode字符串。

2.5版本中的新功能。

Python

Python 是一种面向对象的解释型计算机程序设计语言,由荷兰人 Guido van Rossum 于1989年发明,第一个公开发行版发行于1991年。 Python 是纯粹的自由软件, 源代码和解释器 CPython 遵循 GPL 协议。Python 语法简洁清晰,特色之一是强制用空白符( white space )作为语句缩进。

主页 https://www.python.org/
源码 https://github.com/python/cpython
版本 2.7
发布版本 2.7.13

Python目录

1.内置常量 | Built-in Constants
2.内置例外 | Built-in Exceptions
3.内置函数 | Built-in Functions
4.内置类型 | Built-in Types
5.编译器 | Compiler
6.加密 | Cryptography
7.数据压缩 | Data Compression
8.数据持久性 | Data Persistence
9.数据类型 | Data Types
10.调试和分析 | Debugging & Profiling
11.开发工具 | Development Tools
12.文件和目录访问 | File & Directory Access
13.文件格式 | File Formats
14.构架 | Frameworks
15.输入 | Importing
16.输入/输出 | Input/ouput
17.国际化 | Internationalization
18.网络 | Internet
19.网络数据 | Internet Data
20.翻译 | Interpreters
21.语言 | Language
22.记录 | Logging
23.Mac OS
24.MS Windows
25.多媒体 | Multimedia
26.联网 | Networking
27.数字与数学 | Numeric & Mathematical
28.操作系统 | Operating System
29.可选操作系统 | Optional Operating System
30.限制执行 | Restricted Execution
31.运行 | Runtime
32.SGI IRIX
33.软件包装与分销 | Software Packaging & Distribution
34.字符串 | String
35.结构化标记 | Structured Markup
36.Tk
37.Unix
38.Python 简介
39.Python pass 语句
40.Python 循环嵌套
41.Python 运算符
42.Python log10() 函数
43.Python log() 函数
44.Python floor() 函数
45.Python fabs() 函数
46.Python exp() 函数
47.Python cmp() 函数
48.Python ceil() 函数
49.Python abs() 函数
50.Python Number(数字)
51.Python pow() 函数
52.Python modf() 函数
53.Python min() 函数
54.Python max() 函数
55.Python asin() 函数
56.Python acos() 函数
57.Python uniform() 函数
58.Python shuffle() 函数
59.Python seed() 函数
60.Python random() 函数
61.Python randrange() 函数
62.Python choice() 函数
63.Python sqrt() 函数
64.Python round() 函数
65.Python radians() 函数
66.Python degrees() 函数
67.Python tan() 函数
68.Python sin() 函数
69.Python hypot() 函数
70.Python cos() 函数
71.Python atan2() 函数
72.Python atan() 函数
73.Python 元组
74.Python 列表(List)
75.Python 字符串
76.Python 字典(Dictionary)
77.Python 日期和时间
78.Python 函数
79.Python 模块
80.Python capitalize()方法
81.Python center()方法
82.Python count() 方法
83.Python expandtabs()方法
84.Python endswith()方法
85.Python encode()方法
86.Python decode()方法
87.Python find()方法
88.Python index()方法
89.Python 异常处理
90.Python isspace()方法
91.Python isnumeric()方法
92.Python islower()方法
93.Python isdigit()方法
94.Python isalpha()方法
95.Python isalnum()方法
96.Python isupper()方法
97.Python istitle()方法
98.Python min()方法
99.Python max()方法
100.Python maketrans()方法