上一篇文章: Python标准库---三、内置函数(G-H-I-J-K)
下一篇文章: Python标准库---五、内置函数(P-K-R)
返回对象的长度(元素个数)。实参能够是序列(如 string、bytes、tuple、list 或 range 等)或集合(如 dictionary、set 或 frozen set 等)。
除了是函数,list 也是可变序列类型,详情请参阅 列表 和 序列类型 --- list, tuple, range。
更新并返回表示当前本地符号表的字典。 在函数代码块但不是类代码块中调用 locals() 时将返回自由变量。 请注意在模块层级上,locals() 和 globals() 是同一个字典。注解 不要更改此字典的内容;更改不会影响解释器使用的局部变量或自由变量的值。segmentfault
产生一个将 function 应用于迭代器中全部元素并返回结果的迭代器。若是传递了额外的 iterable 实参,function 必须接受相同个数的实参,并使用全部迭代器中并行获取的元素。当有多个迭代器时,最短的迭代器耗尽则整个迭代结束。若是函数的输入已是元组实参,请参阅 itertools.starmap()。
max(arg1, arg2, *args[, key])app
返回可迭代对象中最大的元素,或者返回两个及以上实参中最大的。若是只提供了一个位置参数,它必须是非空 iterable,返回可迭代对象中最大的元素;若是提供了两个及以上的位置参数,则返回最大的位置参数。dom
有两个可选只能用关键字的实参。key 实参指定排序函数用的参数,如传给 list.sort() 的。default 实参是当可迭代对象为空时返回的值。若是可迭代对象为空,而且没有给 default ,则会触发 ValueError。函数
若是有多个最大元素,则此函数将返回第一个找到的。这和其余稳定排序工具如 sorted(iterable, key=keyfunc, reverse=True)[0] 和 heapq.nlargest(1, iterable, key=keyfunc) 保持一致。工具
3.4 新版功能: keyword-only 实参 default 。编码
返回由给定实参建立的“内存视图”对象。有关详细信息,请参阅 内存视图。
min(arg1, arg2, *args[, key])spa
返回可迭代对象中最小的元素,或者返回两个及以上实参中最小的。若是只提供了一个位置参数,它必须是 iterable,返回可迭代对象中最小的元素;若是提供了两个及以上的位置参数,则返回最小的位置参数。操作系统
有两个可选只能用关键字的实参。key 实参指定排序函数用的参数,如传给 list.sort() 的。default 实参是当可迭代对象为空时返回的值。若是可迭代对象为空,而且没有给 default ,则会触发 ValueError。翻译
若是有多个最小元素,则此函数将返回第一个找到的。这和其余稳定排序工具如 sorted(iterable, key=keyfunc)[0] 和 heapq.nsmallest(1, iterable, key=keyfunc) 保持一致。
3.4 新版功能: keyword-only 实参 default 。指针
经过调用 iterator 的 __next__() 方法获取下一个元素。若是迭代器耗尽,则返回给定的 default,若是没有默认值则触发 StopIteration。
返回一个没有特征的新对象。object 是全部类的基类。它具备全部 Python 类实例的通用方法。这个函数不接受任何实参。注解 因为 object 没有 __dict__,所以没法将任意属性赋给 object 的实例。
将一个整数转变为一个前缀为“0o”的八进制字符串。结果是一个合法的 Python 表达式。若是 x 不是 Python 的 int 对象,那它须要定义 __index__() 方法返回一个整数。一些例子:
>>> oct(8) '0o10' >>> oct(-56) '-0o70'
若是要将整数转换为八进制字符串,并可选择有无“0o”前缀,则可使用以下方法:
>>> '%#o' % 10, '%o' % 10 ('0o12', '12') >>> format(10, '#o'), format(10, 'o') ('0o12', '12') >>> f'{10:#o}', f'{10:o}' ('0o12', '12')
另见 format() 获取更多信息。
打开 file 并返回对应的 file object。若是该文件不能打开,则触发 OSError。file 是一个 path-like object,表示将要打开的文件的路径(绝对路径或者当前工做目录的相对路径),也能够是要被封装的整数类型文件描述符。(若是是文件描述符,它会随着返回的 I/O 对象关闭而关闭,除非 closefd 被设为 False 。)
mode 是一个可选字符串,用于指定打开文件的模式。默认值是 'r' ,这意味着它以文本模式打开并读取。其余常见模式有:写入 'w' (截断已经存在的文件);排它性建立 'x' ;追加写 'a' (在 一些 Unix 系统上,不管当前的文件指针在什么位置,全部 写入都会追加到文件末尾)。在文本模式,若是 encoding 没有指定,则根据平台来决定使用的编码:使用 locale.getpreferredencoding(False) 来获取本地编码。(要读取和写入原始字节,请使用二进制模式并不要指定 encoding。)可用的模式有:
默认的模式是 'r' (打开并读取文本,同 'rt' )。对于二进制写入, 'w+b' 模式打开并把文件截断成 0 字节; 'r+b' 则不会截断。正如在 概述 中提到的,Python区分二进制和文本I/O。以二进制模式打开的文件(包括 mode 参数中的 'b' )返回的内容为 bytes
对象,不进行任何解码。在文本模式下(默认状况下,或者在 *mode* 参数中包含
't'` )时,文件内容返回为 str ,首先使用指定的 encoding (若是给定)或者使用平台默认的的字节编码解码。此外还容许使用一个模式字符 'U',该字符已再也不具备任何效果,并被视为已弃用。 以前它会在文本模式中启用 universal newlines,这在 Python 3.0 中成为默认行为。 请参阅 newline 形参的文档了解更多细节。
注解 Python不依赖于底层操做系统的文本文件概念;全部处理都由Python自己完成,所以与平台无关。
buffering 是一个可选的整数,用于设置缓冲策略。传递0以切换缓冲关闭(仅容许在二进制模式下),1选择行缓冲(仅在文本模式下可用),而且>1的整数以指示固定大小的块缓冲区的大小(以字节为单位)。若是没有给出 buffering 参数,则默认缓冲策略的工做方式以下:
encoding 是用于解码或编码文件的编码的名称。这应该只在文本模式下使用。默认编码是依赖于平台的(不 管 locale.getpreferredencoding() 返回何值),但可使用任何Python支持的 text encoding 。有关支持的编码列表,请参阅 codecs 模块。errors 是一个可选的字符串参数,用于指定如何处理编码和解码错误 - 这不能在二进制模式下使用。可使用各类标准错误处理程序(列在 Error Handlers ),可是使用 codecs.register_error() 注册的任何错误处理名称也是有效的。标准名称包括:
若是 closefd 是 False 而且给出了文件描述符而不是文件名,那么当文件关闭时,底层文件描述符将保持打开状态。若是给出文件名则 closefd 必须为 True (默认值),不然将引起错误。能够经过传递可调用的 opener 来使用自定义开启器。而后经过使用参数( file,flags )调用 opener 得到文件对象的基础文件描述符。 opener 必须返回一个打开的文件描述符(使用 os.open as opener 时与传递 None 的效果相同)。
新建立的文件是 不可继承的。
下面的示例使用 os.open() 函数的 dir_fd 的形参,从给定的目录中用相对路径打开文件:
>>> >>> import os >>> dir_fd = os.open('somedir', os.O_RDONLY) >>> def opener(path, flags): ... return os.open(path, flags, dir_fd=dir_fd) ... >>> with open('spamspam.txt', 'w', opener=opener) as f: ... print('This will be written to somedir/spamspam.txt', file=f) ... >>> os.close(dir_fd) # don't leak a file descriptor
open() 函数所返回的 file object 类型取决于所用模式。 当使用 open() 以文本模式 ('w', 'r', 'wt', 'rt' 等) 打开文件时,它将返回 io.TextIOBase (特别是 io.TextIOWrapper) 的一个子类。 当使用缓冲以二进制模式打开文件时,返回的类是 io.BufferedIOBase 的一个子类。 具体的类会有多种:在只读的二进制模式下,它将返回 io.BufferedReader;在写入二进制和追加二进制模式下,它将返回 io.BufferedWriter,而在读/写模式下,它将返回 io.BufferedRandom。 当禁用缓冲时,则会返回原始流,即 io.RawIOBase 的一个子类 io.FileIO。另请参阅文件操做模块,例如 fileinput、io (声明了 open())、os、os.path、tempfile 和 shutil。
在 3.3 版更改:
增长了 opener 形参。增长了 'x' 模式。
过去触发的 IOError,如今是 OSError 的别名。
若是文件已存在但使用了排它性建立模式( 'x' ),如今会触发 FileExistsError。
在 3.4 版更改:
文件如今禁止继承。Deprecated since version 3.4, will be removed in version 4.0: 'U' 模式。
在 3.5 版更改:
若是系统调用被中断,但信号处理程序没有触发异常,此函数如今会重试系统调用,而不是触发 InterruptedError 异常(缘由详见 PEP 475)。增长了 'namereplace' 错误处理接口。
在 3.6 版更改:
增长对实现了 os.PathLike 对象的支持。在 Windows 上,打开一个控制台缓冲区将返回 io.RawIOBase 的子类,而不是 io.FileIO。
对表示单个 Unicode 字符的字符串,返回表明它 Unicode 码点的整数。例如 ord('a') 返回整数 97, ord('€') (欧元符合)返回 8364 。这是 chr() 的逆函数。
上一篇文章: Python标准库---三、内置函数(G-H-I-J-K)
下一篇文章: Python标准库---五、内置函数(P-K-R)