摘要:返回的信息特定于當前線程以及當前堆棧幀。出于某些原因,這個值可能無法計算,將返回返回安卓版本的構建時間,以整數表示。僅適用于安卓平臺返回解釋器的檢查間隔。可操作此屬性實現強制重新加載模塊等。
sys模塊提供對由解釋器使用或維護的某些變量、與解釋器交互的函數的訪問接口。
sys.abiflags在使用標準configure腳本構建python的POSIX系統上,該屬性包含了PEP 3149中規定的ABI標志。
sys.argv傳遞給python腳本的命令行參數列表。argv[0]表示腳本名稱(是不是完成路徑名取決于操作系統)。如果命令使用-c選項執行,argv[0]表示字符串-c。如果命令行沒有指定腳本名稱,argv[0]為空字符串。
sys.base_exec_prefix sys.base_prefix sys.byteorder本機字節順序的指示符。大尾平臺上值是"big",小尾平臺上值是"little"
sys.builtin_module_names編譯到python編譯器的所有模塊的名稱的字符串列表
sys.call_tracing(func, args) sys.copyright返回與python解釋器有關的版權信息
sys._clear_type_cache()清除內部類型緩存。類型緩存用于加速屬性、方法查找。僅在引用泄露調試期間刪除不必要的引用時使用。
此函數應僅用于內部和專用用途
sys._current_frames()返回函數調用時,每個線程標識符與該線程中處于活動狀態的頂層堆棧幀的字典映射。traceback模塊中的函數可以通過給定這樣的幀構建調用堆棧。
這對于調試死鎖是非常有用的:此函數不需要死鎖線程的合作,而且只要它們保持死鎖狀態,調用堆棧都將被凍結。到調用代碼檢查幀時,非死鎖線程返回的幀可能與該線程的當前活動沒有關系。
此函數應僅用于內部和專用用途
sys.breakpointhook() sys._debugmallocstats()打印CPython內存分配器狀態的低級信息到stderr。
如果python構建使用了-with-pydebug配置,此方法還會執行一些昂貴的內部一致性檢查
此方法特定于CPython解釋器使用
sys.dllhandle指定python DLL句柄的整數,僅在windows平臺可用
sys.displayhook(value) sys.dont_write_bytecode如果值為True,導入源模塊時python將不會寫入.pyc文件。該值初始化設置為True或False,取決于命令行選項-B以及PYTHONDONTWRITEBYTECODE環境變量,用戶可以通過設置值來控制字節碼文件的生成
sys.excepthook(type, value, traceback) sys.__breakpointhook__; sys.__displayhook__; sys.__excepthook__ sys.exc_info()返回三個值的元組,它們提供有關當前正在處理的異常的信息。返回的信息特定于當前線程以及當前堆棧幀。如果當前堆棧幀無異常處理,則信息來自正在調用的堆棧幀或堆棧幀的調用者,等等,直到發現正在處理異常的堆棧幀。這里的“處理異常”指的是執行except子句。對于任何堆棧幀而言,只能訪問當前正處理的異常的信息
如果堆棧中的任何地方都無異常處理,返回包含3個None值的元組。否則返回包含(type, value, traceback)的元組。type指當前正處理的異常的類型,value指異常實例,traceback獲取一個追蹤對象,它封裝了異常最初發生的地方的調用堆棧
sys.exec_prefix sys.executable返回python解釋器的可執行二進制文件的絕對路徑。如果python無法獲取其真實路徑,返回空字符串或None
sys.exit([arg])退出python。此方法實際上是通過拋出SystemExit異常實現的,因此try語句中finally子句的清理操作仍會得到執行,且能在外層攔截退出意圖
import sys try: sys.exit(1) except SystemExit: print("catch exception...") finally: print("cleanup action...")
可選參數arg說明退出狀態(默認為0),可以是整數,也可以是其他類型的對象。如果是整數,0視為"成功終止",任何非零整數都將視為"異常終止"。大多數系統要求其范圍在0-127之間,否則可能產生不確定的結果。Unix程序通常用2表示命令行語法錯誤,1表示其他所有異常。如果傳入了非整型對象,None等同0,其他對象都等同1,且會被打印到stderr。sys.exit("some error message")是錯誤發生時快速退出程序的一種方法。
因為exit()基本上只是拋出異常,當在主線程中調用它且沒有捕獲異常時,它僅會退出程序
sys.flags sys.float_info sys.float_repr_style sys.getallocatedblocks()返回解釋器當前分配的內存塊數量。主要用于追蹤和調試內存泄漏。受解釋器內部緩存影響,每次調用返回的值都可能不一樣,可以通過調用_clear_type_cache()和gc.collect()方法獲取更可預測的結果。
出于某些原因,這個值可能無法計算,將返回0
sys.getandroidapilevel()返回安卓API版本的構建時間,以整數表示。僅適用于安卓平臺
sys.getcheckinterval()返回解釋器的檢查間隔。在3.2版本中被getswitchinterval()替代
sys.getdefaultencoding()Unicode使用的默認字符編碼名稱
sys.getdlopenflags() sys.getfilesystemencoding()文件名的Unicode形式和字節形式相互轉換使用的編碼名稱。為了更好的兼容性,在所有情況下都應該使用字符串形式的文件名,盡管也支持字節形式。接收或返回文件名的函數應該支持str或bytes類型并在內部轉換為系統偏向的展示格式。
返回的編碼總是兼容ASCII
os.fsencode()和os.fsdecode()使用此方法返回的編碼進行編解碼處理
在UTF-8模式下,任何平臺都返回"utf-8"
在Mac OS X平臺,返回"utf-8"
在Unix平臺,返回語言環境編碼(locale encoding)
在Windows平臺,取決于用戶配置,返回"utf-8"或"mbcs"
sys.getfilesystemencodeerrors()文件名的Unicode形式和字節形式相互轉換使用的錯誤模式。
sys.getrefcount(object)返回object的引用次數,通常高于期待值,因為包含了object作為參數傳遞給此方法的臨時引用
sys.getrecursionlimit()python解釋器堆棧當前設置的最大遞歸深度,可以通過setrecursionlimit()設置。
sys.getsizeof(object[, default])返回任意對象的字節大小。所有的內置對象都能返回正確的結果,但對于第三方擴展不一定適用。
Only the memory consumption directly attributed to the object is accounted for, not the memory consumption of objects it refers to.
對于未提供獲取大小的方式的對象,返回default。如果未提供default,拋出TypeError異常。
getsizeof()函數調用對象的__sizeof__方法,如果對象由垃圾回收器管理,還會計算額外的垃圾回收器開銷
sys.getswitchinterval()返回解釋器的線程切換間隔
sys._getframe([depth]) sys.getprofile() sys.gettrace() sys.getwindowsversion()返回描述當前運行的Windows版本信息的命名元組。命名的元素是major, minor, build, platform, service_pack, service_pack_minor, service_pack_major, suite_mask, product_type和platform_version。
service_pack是一個字符串,platform_version是一個長度為3的元組,其他元素的值都是整數。各個元素還可以通過名稱訪問,比如sys.getwindowsversion()[0]等同于sys.getwindowsversion().major(僅前5個元素可通過下標訪問)。
platform的值為2(VER_PLATFORM_WIN32_NT)
product_type的值為下列中的一個:
platform_version返回當前操作系統的精確major版本、minor版本和版本號(build number)。
>>> import sys >>> sys.getwindowsversion() sys.getwindowsversion(major=10, minor=0, build=17134, platform=2, service_pack="") >>> sys.getwindowsversion().platform_version (10, 0, 17134)sys.get_asyncgen_hooks() sys.get_coroutine_origin_tracking_depth() sys.get_coroutine_wrapper() sys.hash_info sys.hexversion
編碼為單個整數的版本號。每個版本都保證會增加,包括對非生產版本的支持。測試python解釋器版本是否在1.5.2以上的示例:
if sys.hexversion >= 0x010502F0: # use some advanced feature ... else: # use an alternative implementation or warn the user ...
之所以稱其為hexversion,是因為它僅在傳遞給hex()函數返回十六進制的結果時才看起來有意義。使用sys.version_info可以顯示更人性化的相同信息。
>>> sys.version_info sys.version_info(major=3, minor=7, micro=0, releaselevel="final", serial=0) >>> sys.hexversion 50790640 >>> hex(sys.hexversion) "0x30700f0"
hexversion是一個具有以下布局的32位數字:
因此2.1.0a3是hexversion0x020100a3
sys.implementation當前運行的python解釋器的實現信息。下列屬性在不同的python實現上都存在:
name:實現標識符,比如"cpython"。
version:具有同sys.version_info相同的格式,表示python實現的版本。對于Cpython來說,sys.implementation.version和sys.version_info值相同。
hexversion:python實現版本的十六進制格式,類似sys.hexversion
cache_tag:緩存模塊的文件名中使用導入機制的標記。按照慣例,它的值是實現名稱和版本的組合,比如"cpython-33"。然而python實現也可能使用其他合適的值。如果值為None,表示禁用了模塊緩存
sys.implementation可能包含特定python實現的額外屬性。非標準屬性必須以"_"開頭。無論其內容如何,??sys.implementation都不會在解釋器運行期間或實現版本之間發生變化
sys.int_info保存python整數的內部表示的結構序列。屬性只讀:
bits_per_digit:number of bits held in each digit. Python integers are stored internally in base 2**int_info.bits_per_digit
sizeof_digit:size in bytes of the C type used to represent a digit
sys.__interactivehook__ sys.intern(string) sys.is_finalizing()如果python解釋器正在關閉,返回True。
sys.last_type; sys.last_value; sys.last_traceback這三個屬性并不一定存在,它們在異常未被處理且解釋器打印異常的錯誤信息以及堆棧跟蹤后才被設置。它們的用途在于允許交互式用戶導入調試器模塊并進行post-mortem調試而無需重新執行導致異常的代碼。
它們的含義與sys.exc_info()返回值的含義相同。
>>> sys.last_traceback >Traceback (most recent call last): File "sys.maxsize", line 1, in AttributeError: module "sys" has no attribute "last_traceback" >>> raise Exception("throw") Traceback (most recent call last): File " ", line 1, in Exception: throw >>> sys.last_type >>> sys.last_value Exception("throw",) >>> sys.last_traceback
Py_ssize_t類型的變量可接受的最大整數值。通常在32位平臺上是2 ** 31 - 1,在64位平臺上是2 ** 63 - 1
sys.maxunicodeUnicode碼表可接受的最大整數位(1114111或"0x10FFFF")
sys.meta_path sys.modules映射已導入的模塊名和模塊的字典對象??刹僮鞔藢傩詫崿F強制重新加載模塊等。不過替換字典對象不一定能實現預期效果,刪除基本項也可能造成python錯誤
sys.path說明模塊搜索路徑的字符串列表。初始化自環境變量PYTHONPATH以及依賴于安裝的默認值。
sys.path在程序啟動時初始化,sys.path[0]表示啟用python解釋器的腳本所在的目錄。如果該目錄不可用(比如解釋器是通過交互式調用的,或腳本讀取自標準輸入),則sys.path[0]為空字符串,表示python優先在當前工作目錄搜索模塊。
程序可以自由地修改sys.path列表。只有字符串和字節序列形式的路徑才生效,其他類型都將被忽略。
Note:腳本目錄在環境變量PYTHONPATH之前插入sys.path。
sys.path_hooks sys.path_importer_cache sys.platform表示平臺標識符的字符串。可用于添加特定于平臺的組件到sys.path中,或其他用途。
對于Unix系統(Linux除外),它的值是uname -s指令返回的OS名稱的小寫格式與uname -r指令返回的版本信息的第一部分的組合,如sunos5或freebsd8。除非是針對特定的系統版本,推薦使用如下方式:
if sys.platform.startswith("freebsd"): # FreeBSD-specific code here... elif sys.platform.startswith("linux"): # Linux-specific code here...
其他系統對應的值:
Linux: "linux"
Windows: "win32"
Windows/Cygwin: "cygwin"
Mac OS X:"darwin"
3.3版本改動:Linux系統上,sys.platform的值將由"linux"替代"linux2"或"linux3",不再包含主版本。推薦使用上面的startswith,因為能夠兼容老版本的python代碼。
sys.prefix sys.ps1; sys.ps2python解釋器的首要、次要提示符。僅在交互模式下被定義,初始值分別是>>>和...
sys.setcheckinterval(interval)自3.2版本棄用。該函數不再有效,因為重寫了線程切換和異步任務的內在邏輯。使用setswitchinterval()替代
sys.setprofile(profilefunc) sys.setrecursionlimit(limit)設置python解釋器堆棧的最大深度為limit??杀苊鉄o限遞歸導致的堆棧溢出和python崩潰。
最大遞歸深度依賴于平臺。當程序需要且平臺也能提供更大深度的遞歸支持時,用戶可以設置更大的limit值。
如果limit值設置的過小不能滿足當前遞歸深度要求時,將拋出RecursionError異常
sys.setswitchinterval(interval)設置解釋器的線程切換間隔(單位為秒,浮點類型)。interval確定分配給并發運行的python線程的"timesices"的理想持續時間。實際值可以設置的更高,尤其是使用長時間運行的內部函數或方法。
interval時間結束后的線程調度由操作系統決定,而不是解釋器。
sys.settrace(tracefunc) sys.set_asyncgen_hooks(firstiter, finalizer) sys.set_coroutine_origin_tracking_depth(depth) sys.set_coroutine_wrapper(wrapper) sys._enablelegacywindowsfsencoding()改變默認文件系統編碼和錯誤模式為"mbcs"和"replace",與python3.6之前的版本保持一致。僅限Windows平臺使用。
等同于啟動python前,定義PYTHONLEGACYWINDOWSFSENCODING環境變量。
sys.stdin; sys.stdout; sys.stderr解釋器用于標準輸入、輸出和錯誤的文件對象:
stdin:用于所有交互式輸入(包括調用input())
stdout:用于輸出print()和表達式語句,以及input()的提示
stderr:用于輸出解釋器本身的提示和錯誤信息
這些流是常規的文本文件(text file)對象,它們的參數選擇如下:
字符編碼取決于平臺。在Windows平臺,如果是在交互模式下,使用控制臺代碼頁的編碼,除此之外使用ANSI編碼。在其他平臺,使用語言環境編碼(locale.getpreferredencoding())。不過所有平臺都可以通過在啟動python前,設置PYTHONIOENCODING環境變量重寫編碼。
在交互模式下,stdout和stderr流是行緩沖的,除此之外都是像文本文件那樣塊緩沖的??梢酝ㄟ^命令行參數"-u"重寫
Note:要從標準流中讀取二進制數據或寫入二進制數據到標準流,使用底層的二進制buffer對象。例如寫入字節到stdout,使用sys.stdout.buffer.write(b"abc")。然而如果你是在寫一個python庫,且不控制其代碼在哪個上下文中執行,要注意標準流可能被不支持buffer屬性的file-like對象如io.StringIO替換。
sys.__stdin__; sys.__stdout__; sys.__stderr__ sys.thread_info包含線程實現信息的結構序列。
name:線程實現名稱
"nt":Windows線程
"pthread":POSIX線程
"solaris":Solaris線程
lock:鎖實現名稱
"semaphore":使用信號的鎖
"mutex_cond":使用互斥和條件變量的鎖
None:鎖信息未知
version:線程庫的名稱和版本。如果為None表示信息未知
sys.tracebacklimit發生未處理的異常時,打印的回溯信息的最大層級。默認為1000。當設置為0或負數時,所有的回溯信息受到打印抑制,而只打印type和value
>>> raise Exception("throw") Traceback (most recent call last): File "sys.version", line 1, in Exception: throw >>> sys.tracebacklimit = 0 >>> raise Exception("throw") Exception: throw
包含python解釋器版本號、使用的編譯器及其構建號信息的字符串。在交互模式下啟動python時會顯示。不要直接在sys.version上提取版本信息,應該使用sys.version_info和platform模塊提供的功能
sys.api_verison解釋器使用的C的接口版本。在調試python和擴展模塊的版本沖突時可能有用。
sys.version_info包含python版本信息的元組,命名元素分別為major, minor, micro, releaselevel和serial。除releaselevel外的所有值都是整數,releaselevel的值是"alpha", "beta", "candidate"或"final"中的一個。可以通過屬性或下標訪問。
>>> sys.version_info sys.version_info(major=3, minor=6, micro=5, releaselevel="final", serial=0)sys.warnoptions
warnings框架的實現細節,不要修改。
sys.winver sys._xoptions通過"-X"命令行選項傳遞的特定實現標志的字典對象(特定于CPython的訪問方式)。
$ ./python -Xa=b -Xc Python 3.2a3+ (py3k, Oct 16 2010, 20:14:50) [GCC 4.4.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import sys >>> sys._xoptions {"a": "b", "c": True}
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/44803.html
摘要:的模塊其實就是封裝了一個或者多個功能的代碼集合,以便于重用,模塊可以是一個文件也可以是一個目錄,目錄的形式稱作包。已經導入的模塊會保存在字典中。 Python的模塊其實就是封裝了一個或者多個功能的代碼集合,以便于重用,模塊可以是一個文件也可以是一個目錄,目錄的形式稱作包。 模塊分類 內置模塊 內置模塊可以理解成當你安裝好python環境之后,直接可以使用import導入的就是內置模塊,...
摘要:是回調函數,當鏈接服務器和相應數據傳輸完畢時觸發本函數可選。僅僅是針對的,在中,已經沒有這個模塊了,取代它的是。由于以流式讀取文件,從而速度較快,切少占用內存,但是操作上稍復雜,需要用戶實現回調函數。 編寫模塊 模塊是程序 模塊就是一個擴展名為.py的Python程序。 編寫模塊 #!/usr/bin/env python # coding=utf-8 lang = python 引...
摘要:將程序包裝在界面里,可以將輸入通過多種途徑如文本框彈出路徑選擇等輸入到程序里。將輸出通過文本框顯示出來將執行信息如如報錯信息運行進度通過文本框或進度條顯示出來文章安排先介紹安裝和配合的使用。 作為一個程序的開發者,我們僅僅需要在相應路徑通過命令行就可執行那個程序。但是,不懂行的人不理解這個黑框框的東西,陌生領域任何人都沒有安全感,所以他們是拒絕接受一個項目僅僅只是通過一個黑框框來執行的...
摘要:操作系統接口模塊提供了一些與操作系統相關聯的函數。返回當前目錄下所有圖片的文件名命令行參數在命令行中運行命令時,這些參數會以列表形式保存在模塊的變量中。日期和時間模塊為日期和時間處理同時提供了簡單和復雜的方法。 1. 操作系統接口 os 模塊提供了一些與操作系統相關聯的函數。 >>> os.getcwd() # 獲取當前工作目錄 /home/senius >>>...
摘要:一的基本語法縮進統一個或者個空格。中的數據類型中有個標準類型數字字符串列表元組集合字典數字復數在中,只有一種整數類型,表示長整型。如則會顯示,并不是換行??招信c代碼縮進不同,空行并不是語法的一部分。我們將首行及后面的代碼組稱為一個子句。 一、python3的基本語法 1、縮進統一(1個tab或者4個空格)。 for i in range(10): print (i) ...
閱讀 3757·2021-11-24 09:39
閱讀 2953·2021-11-16 11:49
閱讀 2075·2019-08-30 13:54
閱讀 1104·2019-08-30 13:03
閱讀 1090·2019-08-30 11:10
閱讀 718·2019-08-29 17:10
閱讀 1247·2019-08-29 15:04
閱讀 1211·2019-08-29 13:02