系統工具-sys模塊

平臺與版本

>>> sys.platform
'linux'
>>> sys.maxsize
9223372036854775807
>>> sys.version
'3.6.1 (default, Jul 12 2017, 09:58:07) \n[GCC 4.8.5 20150623 (Red Hat 4.8.5-11)]'
>>> import sys
>>> sys.platform   # 底層操做系統名稱
'win32'
>>> sys.maxsize    # 當前計算機上可容納的最大的「原生」整型
9223372036854775807
>>> sys.version    # Python解釋器的版本號
'3.6.1 (v3.6.1:69c0db5, Mar 21 2017, 18:41:36) [MSC v.1900 64 bit (AMD64)]'

模塊搜索路徑

sys.path 是一個由目錄名稱字符串組成的列表,每一個目錄名稱字符串表明正在運行的Python 解釋器真正的搜索路徑。模塊導入時,Python會從左向右掃描列表,在列表中的每一個目錄下搜索模塊文件。html

sys.path 列表在解釋器啓動時根據PYTHONPATH設置進行初始化,電腦中Python目錄下的全部.pth 路徑文件的內容,以及系統默認設置。python

>>> sys.path
['', '/usr/local/lib/python36.zip', '/usr/local/lib/python3.6', ...more deleted...]

另外,sys.path 也能夠用程序進行更改。腳本能夠藉助多種列表操做來設置搜索路徑,好比 append、extend、insert、pop、remove 和del,以便把所需的源目錄所有包括進來。不管如何更改,Python在導入時老是使用當前sys.path設置:linux

>>> sys.path
['', '/usr/local/lib/python36.zip', '/usr/local/lib/python3.6', '/usr/local/lib/python3.6/lib-dynload', '/usr/local/lib/python3.6/site-packages']
>>> sys.path.append('/root')
>>> sys.path
['', '/usr/local/lib/python36.zip', '/usr/local/lib/python3.6', '/usr/local/lib/python3.6/lib-dynload', '/usr/local/lib/python3.6/site-packages', '/root']

對sys.path 的更改只維持到Python 進程結束時,下次重啓時,須要從新設定。app

Windows在 DOS目錄下,目錄路徑字符串中使用雙反斜槓(如在"C:\\dir"中,\\ 是表示\ 的轉義符),或者使用原始字符串字面量來保留反斜槓的字面意義(如 r"C:\dir")工具

已加載模塊表

sys 模塊還包含嵌入解釋器的鉤子。 例如, sys.modules是一個字典,你的Python會話或程序所導入的每一個模塊在其中都有一個name:module項:ui

>>> sys.modules
{'builtins': <module 'builtins' (built-in)>, ...more deleted...}

>>> list(sys.modules.keys())  
['builtins', 'sys', '_frozen_importlib', ...]

>>> sys
<module 'sys' (built-in)>
>>> sys.modules['sys']
<module 'sys' (built-in)>

另外,藉助解釋器的鉤子,能夠經過 sys.getrefcount 來查看對象的引用次數,而Python 的內置模塊名稱可執行 sys.builtin_module_names 列出:spa

>>> sys.getrefcount(sys)
49
>>> sys.builtin_module_names
('_ast', '_codecs', '_collections', '_functools', '_imp', '_io', '_locale', '_operator', '_signal', '_sre', '_stat', '_string', '_symtable', '_thread', '_tracemalloc', '_warnings', '_weakref', 'atexit', 'builtins', 'errno', 'faulthandler', 'gc', 'itertools', 'marshal', 'posix', 'pwd', 'sys', 'time', 'xxsubtype', 'zipimport')

 

sys模塊導出的其餘工具

sys.argv  : 顯示爲由字符串組成的列表的命令行參數操作系統

sys.stdin、sys.stdout和sys.stderr: 標準流命令行

sys.exit:經過調用可強制退出code

詳細介紹請參考:https://docs.python.org/3/library/sys.html?highlight=sys#module-sys

相關文章
相關標籤/搜索