摘要:上一篇文章標準庫內置函數下一篇文章標準庫內置函數內置函數返回對象的長度元素個數。對表示單個字符的字符串,返回代表它碼點的整數。上一篇文章標準庫內置函數下一篇文章標準庫內置函數
上一篇文章:Python標準庫---3、內置函數(G-H-I-J-K)內置函數: 38. len(s)
下一篇文章:Python標準庫---5、內置函數(P-K-R)
返回對象的長度(元素個數)。實參可以是序列(如 string、bytes、tuple、list 或 range 等)或集合(如 dictionary、set 或 frozen set 等)。39. class list([iterable])
除了是函數,list 也是可變序列類型,詳情請參閱 列表 和 序列類型 --- list, tuple, range。40. locals()
更新并返回表示當前本地符號表的字典。 在函數代碼塊但不是類代碼塊中調用 locals() 時將返回自由變量。 請注意在模塊層級上,locals() 和 globals() 是同一個字典。41. map(function, iterable, ...)注解 不要更改此字典的內容;更改不會影響解釋器使用的局部變量或自由變量的值。
產生一個將 function 應用于迭代器中所有元素并返回結果的迭代器。如果傳遞了額外的 iterable 實參,function 必須接受相同個數的實參,并使用所有迭代器中并行獲取的元素。當有多個迭代器時,最短的迭代器耗盡則整個迭代結束。如果函數的輸入已經是元組實參,請參閱 itertools.starmap()。42. max(iterable, *[, key, default])
max(arg1, arg2, *args[, key])
返回可迭代對象中最大的元素,或者返回兩個及以上實參中最大的。43. memoryview(obj)如果只提供了一個位置參數,它必須是非空 iterable,返回可迭代對象中最大的元素;如果提供了兩個及以上的位置參數,則返回最大的位置參數。
有兩個可選只能用關鍵字的實參。key 實參指定排序函數用的參數,如傳給 list.sort() 的。default 實參是當可迭代對象為空時返回的值。如果可迭代對象為空,并且沒有給 default ,則會觸發 ValueError。
如果有多個最大元素,則此函數將返回第一個找到的。這和其他穩定排序工具如 sorted(iterable, key=keyfunc, reverse=True)[0] 和 heapq.nlargest(1, iterable, key=keyfunc) 保持一致。
3.4 新版功能: keyword-only 實參 default 。
返回由給定實參創建的“內存視圖”對象。有關詳細信息,請參閱 內存視圖。44. min(iterable, *[, key, default])
min(arg1, arg2, *args[, key])
返回可迭代對象中最小的元素,或者返回兩個及以上實參中最小的。45. next(iterator[, default])如果只提供了一個位置參數,它必須是 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。46. class object
返回一個沒有特征的新對象。object 是所有類的基類。它具有所有 Python 類實例的通用方法。這個函數不接受任何實參。47. oct(x)注解 由于 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() 獲取更多信息。48. open(file, mode="r", buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
打開 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 參數,則默認緩沖策略的工作方式如下:
二進制文件以固定大小的塊進行緩沖;使用啟發式方法選擇緩沖區的大小,嘗試確定底層設備的“塊大小”或使用 io.DEFAULT_BUFFER_SIZE。在許多系統上,緩沖區的長度通常為4096或8192字節。
“交互式”文本文件( isatty() 返回 True 的文件)使用行緩沖。其他文本文件使用上述策略用于二進制文件。
encoding 是用于解碼或編碼文件的編碼的名稱。這應該只在文本模式下使用。默認編碼是依賴于平臺的(不 管 locale.getpreferredencoding() 返回何值),但可以使用任何Python支持的 text encoding 。有關支持的編碼列表,請參閱 codecs 模塊。errors 是一個可選的字符串參數,用于指定如何處理編碼和解碼錯誤 - 這不能在二進制模式下使用。可以使用各種標準錯誤處理程序(列在 Error Handlers ),但是使用 codecs.register_error() 注冊的任何錯誤處理名稱也是有效的。標準名稱包括:
如果存在編碼錯誤,"strict" 會引發 ValueError 異常。 默認值 None 具有相同的效果。
"ignore" 忽略錯誤。請注意,忽略編碼錯誤可能會導致數據丟失。
"replace" 會將替換標記(例如 "?" )插入有錯誤數據的地方。
"surrogateescape" 將表示任何不正確的字節作為Unicode專用區中的代碼點,范圍從U+DC80到U+DCFF。當在寫入數據時使用 surrogateescape 錯誤處理程序時,這些私有代碼點將被轉回到相同的字節中。這對于處理未知編碼的文件很有用。
只有在寫入文件時才支持 "xmlcharrefreplace"。編碼不支持的字符將替換為相應的XML字符引用 nnn;。
"backslashreplace" 用Python的反向轉義序列替換格式錯誤的數據。
"namereplace" (也只在編寫時支持)用 N{...} 轉義序列替換不支持的字符。
newline 控制 universal newlines 模式如何生效(它僅適用于文本模式)。它可以是 None,"","n","r" 和 "rn"。它的工作原理:
從流中讀取輸入時,如果 newline 為 None,則啟用通用換行模式。輸入中的行可以以 "n","r" 或 "rn" 結尾,這些行被翻譯成 "n" 在返回呼叫者之前。如果它是 "",則啟用通用換行模式,但行結尾將返回給調用者未翻譯。如果它具有任何其他合法值,則輸入行僅由給定字符串終止,并且行結尾將返回給未調用的調用者。
將輸出寫入流時,如果 newline 為 None,則寫入的任何 "n" 字符都將轉換為系統默認行分隔符 os.linesep。如果 newline 是 "" 或 "n",則不進行翻譯。如果 newline 是任何其他合法值,則寫入的任何 "n" 字符將被轉換為給定的字符串。
如果 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。49. ord(c)另請參閱文件操作模塊,例如 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標準庫---3、內置函數(G-H-I-J-K)
下一篇文章:Python標準庫---5、內置函數(P-K-R)
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/43982.html
摘要:上一篇文章標準庫內置函數下一篇文章標準庫內置函數內置函數返回的次冪如果存在,則對取余比直接計算更高效。是用于刪除屬性值的函數。上一篇文章標準庫內置函數下一篇文章標準庫內置函數 上一篇文章:Python標準庫---4、內置函數(L-M-N-O)下一篇文章:Python標準庫---6、內置函數(P-K-R-S-T-U) 內置函數: showImg(https://segmentfault...
摘要:上一篇文章標準庫內置函數下一篇文章標準庫內置函數內置函數返回對象命名屬性的值。返回表示當前全局符號表的字典。例如,從二進制數據庫文件中讀取固定寬度的塊,直至到達文件的末尾上一篇文章標準庫內置函數下一篇文章標準庫內置函數 上一篇文章:Python標準庫---2、內置函數(D-E-F)下一篇文章:Python標準庫---4、內置函數(L-M-N-O) 內置函數: showImg(http...
摘要:上一篇文章標準庫內置函數下一篇文章標準庫內置類型邏輯值檢測布爾運算比較內置常量有少數的常量存在于內置命名空間中。給賦值是非法的并會引發。如果所有嘗試都返回,則解釋器將引發適當的異常。如果沒有以選項啟動,則此常量為真值。 上一篇文章:Python標準庫---7、內置函數(V-W-X-Y-Z)下一篇文章:Python標準庫---9、內置類型:邏輯值檢測、布爾運算、比較 內置常量 有少數的...
摘要:內置函數返回一個數的絕對值。使用標準的真值測試過程來轉換。因此,構造函數的實參和相同。實參的合法范圍是到進制表示是。數字類型描述了復數類型。上一篇文章標準庫簡介下一篇文章標準庫內置函數 上一篇文章:Python標準庫----0、簡介下一篇文章:Python標準庫---1、內置函數(D-E-F) Python 解釋器內置了很多函數和類型,您可以在任何時候使用它們。以下按字母表順序列出它...
摘要:上一篇文章標準庫內置函數下一篇文章標準庫內置常量內置函數返回模塊類實例或任何其它具有屬性的對象的屬性。相當于函數會保證可迭代對象按從左至右的順序被求值。上一篇文章標準庫內置函數下一篇文章標準庫內置常量 上一篇文章:Python標準庫---6、內置函數(P-K-R-S-T-U)下一篇文章:Python標準庫---8、內置常量 內置函數: showImg(https://segmentf...
閱讀 777·2019-08-29 16:32
閱讀 845·2019-08-29 12:31
閱讀 3228·2019-08-26 18:26
閱讀 3169·2019-08-26 12:20
閱讀 1743·2019-08-26 12:00
閱讀 3015·2019-08-26 10:58
閱讀 2821·2019-08-23 17:08
閱讀 2317·2019-08-23 16:32