上一篇文章: 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)