Python 基础函数 04(L ~ O)

Python解释器内置了许多始终可用的功能和类型。它们按字母顺序在此处列出。

Built-in Functions Built-in Functions
len() list()
locals() map()
max() memoryview()
min() next()
object() oct()
open() ord()

len(s )

返回对象的长度(项目数)。参数可以是序列(例如字符串,字节,元组,列表或范围)或集合(例如字典,集合或冻结集合)。

class list([iterable])

实际上不是list可变的函数,而是可变的序列类型,如Lists和Sequence Types(列表,元组,范围)中所述。

locals()

更新并返回代表当前本地符号表的字典。locals()在函数块中调用自由变量时会返回自由变量,而在类块中则不会。请注意,在模块级别,locals() 并且globals()是相同的字典。

注意 该字典的内容不应修改;更改可能不会影响解释器使用的局部变量和自由变量的值。

map(function, iterable, …)

返回一个迭代器,该迭代器将函数应用于iterable的每个项目,并产生结果。如果传递了其他可迭代的参数,则 函数必须采用那么多参数,并且并行地将其应用于所有可迭代的项目。对于多个可迭代对象,当最短可迭代对象耗尽时,迭代器将停止。对于函数输入已经安排在参数元组中的情况,请参见itertools.starmap()。

max(iterable, *[, key, default])

max(arg1, arg2, *args[, key])

返回可迭代的最大项目或两个或多个参数中的最大一个。

如果提供了一个位置参数,则它应该是可迭代的。返回迭代器中最大的项。如果提供了两个或多个位置参数,则返回最大的位置参数。

有两个可选的仅关键字参数。该关键参数指定一个参数的排序功能,类似于用于list.sort()。该 默认参数指定的对象返回如果提供的迭代是空的。如果iterable为空且未提供默认值, ValueError则引发a。

如果有多个最大项,则该函数返回遇到的第一个项。这与其他排序稳定性保存工具(例如和)一致 。sorted(iterable, key=keyfunc, reverse=True)[0]heapq.nlargest(1, iterable, key=keyfunc)

在新版本3.4:在默认情况下只有关键字的说法。

在3.8版本中更改:该键可以None。

class memoryview(obj)

返回从给定参数创建的“内存视图”对象。有关更多信息,请参见 内存视图。

min(iterable, *[, key, default])

min(arg1, arg2, *args[, key])

返回可迭代的最小项或两个或多个参数中的最小项。

如果提供了一个位置参数,则它应该是可迭代的。返回iterable中的最小项。如果提供了两个或多个位置参数,则返回最小的位置参数。

有两个可选的仅关键字参数。该关键参数指定一个参数的排序功能,类似于用于list.sort()。该 默认参数指定的对象返回如果提供的迭代是空的。如果iterable为空且未提供默认值, ValueError则引发a。

如果最少有多个项目,则该函数返回遇到的第一个项目。这与其他排序稳定性保存工具(例如和)一致。sorted(iterable, key=keyfunc)[0]heapq.nsmallest(1, iterable, key=keyfunc)

在新版本3.4:在默认情况下只有关键字的说法。

在3.8版本中更改:该键可以None。

next(iterator[, default])

通过调用其 方法从迭代器中检索下一项__next__()。如果给定default,则迭代器已用尽,否则返回StopIteration。

class object

返回一个新的无特征对象。 object是所有课程的基础。它具有所有Python类实例通用的方法。此函数不接受任何参数。

注意 object没有不有__dict__,所以你不能指定任意属性的实例object类。

oct(x )

将整数转换为以“ 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()以获取更多信息。

open(file, mode=‘r’, buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

打开文件并返回相应的文件对象。如果无法打开文件,OSError则引发。

file是一个类似路径的对象,提供了要打开的文件的路径名(相对于当前工作目录的绝对路径或相对于当前工作目录的路径)或要包装的文件的整数文件描述符。(如果给定了文件描述符,则除非将closefd 设置为,否则当关闭返回的I / O对象时,它将关闭False。)

mode是一个可选字符串,用于指定打开文件的模式。默认为默认状态’r’,表示可以在文本模式下阅读。其他通用值’w’用于写入(如果文件已经存在,则将其截断),'x’用于独占创建和’a’附加(在某些 Unix系统上,这意味着所有写入都将附加到文件末尾,而不管当前查找位置如何)。在文本模式下,如果 编码未指定使用的编码是与平台相关的: locale.getpreferredencoding(False)被称为获取当前的本地编码。(要读取和写入原始字节,请使用二进制模式, 而未指定编码。)可用模式为:

字符 含义
‘r’ 打开阅读(默认)
‘w’ 打开进行写入,先截断文件
‘x’ 打开以进行独占创建,如果文件已经存在则失败
‘a’ 打开进行写入,如果存在则追加到文件末尾
‘b’ 二进制模式
‘t’ 文字模式(默认)
‘+’ 开放进行更新(读写)

默认模式为’r’(打开以阅读文本,为的同义词’rt’)。模式,'w+‘然后’w+b’打开并截断该文件。模式’r+’ 并’r+b’打开文件而不会被截断。

如概述所述,Python区分二进制I / O和文本I / O。以二进制模式(包括’b’在mode 参数中)打开的文件将内容作为bytes对象返回,而不会进行任何解码。在文本方式下(默认方式,或’t’在mode参数中包括时),文件内容返回为str,首先使用依赖于平台的编码或使用给定的指定编码对字节进行了解码 。

注意 Python不依赖于底层操作系统的文本文件概念;所有处理都由Python本身完成,因此与平台无关。
buffering是用于设置缓冲策略的可选整数。传递0以关闭缓冲(仅在二进制模式下允许),传递1以选择行缓冲(仅在文本模式下可用),并传递大于1的整数来指示固定大小的块缓冲区的字节大小。如果未指定任何缓冲参数,则默认缓冲策略如下:

“交互式”文本文件(isatty() 返回的文件True)使用行缓冲。其他文本文件将上述策略用于二进制文件。

encoding是用于对文件进行解码或编码的编码的名称。仅应在文本模式下使用。默认编码取决于平台(无论locale.getpreferredencoding()返回什么),但是可以使用Python支持的任何 文本编码。请参阅codecs模块以获取受支持的编码列表。

errors是一个可选字符串,它指定如何处理编码和解码错误-不能在二进制模式下使用。可以使用多种标准错误处理程序(在错误处理程序之下列出),尽管已向其注册的任何错误处理名称 codecs.register_error()也有效。标准名称包括:

   'strict'ValueError如果存在编码错误,则引发异常。的默认值None具有相同的效果。

   'ignore'忽略错误。请注意,忽略编码错误会导致数据丢失。

   'replace'使替换标记(例如'?')插入到数据格式不正确的地方。

   'surrogateescape'将表示任何不正确的字节作为Unicode专用区中的代码点,范围从U + DC80到U + DCFF。                             

   'surrogateescape当在写入数据时使用错误处理程序时,这些专用代码点将被转换回相同的字节。
                   这对于处理未知编码的文件很有用。

   'xmlcharrefreplace'仅在写入文件时受支持。编码不支持的字符将替换为适当的XML字符引用&#nnn;。

   'backslashreplace' 用Python的反斜杠转义序列替换格式错误的数据。

   'namereplace'(仅在写入时受支持)用\N{...}转义序列替换不受支持的字符。

newline控制通用换行模式的工作方式(仅适用于文本模式)。它可以是None,’’,’\n’,’\r’,和 ‘\r\n’。其工作方式如下:

    从流中读取输入时,如果newline为None,则启用通用换行模式。输入中的行可以以'\n','\r'或结束, 
    在返回给调用方之前'\r\n',这些行会被翻译成'\n'。如果为'',则启用通用换行模式,但是行结尾不翻
    译就返回给呼叫者。如果它具有任何其他合法值,则输入行仅由给定的字符串终止,并且该行的末尾不
    翻译就返回给调用方。

    将输出写入流时,如果newline为None,则'\n' 写入的所有字符都会转换为系统默认的行分隔符 os.linesep。
    如果换行符是''或'\n',则不会进行翻译。如果换行符是其他任何合法值,'\n' 则将写入的所有字符转换为给
    定的字符串。

如果closefd是False并且给出了文件描述符而不是文件名,则在关闭文件时,底层文件描述符将保持打开状态。如果给定文件名,closefd必须为True(默认),否则将引发错误。

可以通过传递可调用的打开器来使用自定义打开器。然后,通过使用(file,flags)调用opener来获取文件对象的基础文件描述符。首战必须返回一个打开的文件描述符(通过 作为揭幕战的结果相似,通过功能 )。os.openNone

新创建的文件是不可继承的。

以下示例使用函数的dir_fd参数 os.open()打开相对于给定目录的文件:

>>> 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()取决于模式。当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。

发起一个审计事件 open带有参数file,mode,flags。

该mode和flags参数可能已被修改或从原来的呼叫推断。

在版本3.3中更改:
在揭幕战中添加参数。

该’x’模式已添加。

IOError曾经被提出,现在是的别名OSError。

FileExistsError如果以独占创建模式(‘x’)打开的文件已经存在,则现在引发。

在版本3.4中进行了更改:
该文件现在不可继承。

自从3.4版本弃用,将在3.9版本中删除:该’U’模式。

在版本3.5中进行了更改:
如果系统调用被中断并且信号处理程序没有引发异常,则该函数现在重试系统调用而不是引发 InterruptedError异常(请参见PEP 475)。

在’namereplace’加入错误处理程序。

在3.6版中进行了更改:
添加了支持以接受实现的对象os.PathLike。

在Windows中,打开一个控制台缓冲区可能返回的一个子类 io.RawIOBase以外io.FileIO。

ord(c )

给定一个表示一个Unicode字符的字符串,返回一个整数,表示该字符的Unicode代码点。例如, ord(‘a’)返回整数97,ord(‘€’)(欧元符号)返回8364。这是的反函数chr()。

发布了36 篇原创文章 · 获赞 0 · 访问量 615

猜你喜欢

转载自blog.csdn.net/Corollary/article/details/105424894