Python 标准库之 sys
1. os 與 sys 庫的差異
os與sys模塊的官方解釋如下:
-
os
This module provides a portable way of using operating system dependent functionality.這個模塊提供了一種方便的使用操作系統(tǒng)函數(shù)的方法。
-
sys
This module provides access to some variables used or maintained by the interpreter and to functions that interact strongly with the interpreter.這個模塊可供訪問由解釋器使用或維護的變量和與解釋器進行交互的函數(shù)。
2. sys 庫常用的函數(shù)
| 函數(shù) | 說明 |
|---|---|
| sys.argv | 命令行參數(shù)List,第一個元素是程序本身路徑 |
| sys.platform | 返回操作系統(tǒng)平臺名稱,在編寫跨平臺應用時很有用 |
| sys.exc_info() | 獲取當前正在處理的異常類,exc_type、exc_value、exc_traceback當前處理的異常詳細信息 |
| sys.exit(n) | 退出程序,正常退出時exit(0) |
| sys.hexversion | 獲取Python解釋程序的版本值,16進制格式如:0x020403F0 |
| sys.version | 獲取Python解釋程序的版本信息 |
| sys.maxint | 最大的Int值 |
| sys.maxunicode | 最大的Unicode值 |
| sys.modules | 返回系統(tǒng)導入的模塊字段,key是模塊名,value是模塊 |
| sys.modules.keys() | 返回所有已經(jīng)導入的模塊列表 |
| sys.path | 返回模塊的搜索路徑,初始化時使用PYTHONPATH環(huán)境變量的值 |
| 標準流 | 如果需要更好地控制輸出, 而print不能滿足你的要求, 它們就是你所需要的.你也可以替換它們, 這時候你就可以重定向輸出和輸入到其它設備(device), 或者以非標準的方式處理它們 |
| sys.stdout | 標準輸出 |
| sys.stdin | 標準輸入 |
| sys.stderr | 錯誤輸出 |
| sys.exc_clear() | 用來清除當前線程所出現(xiàn)的當前的或最近的錯誤信息 |
| sys.exec_prefix | 返回平臺獨立的python文件安裝的位置 |
| sys.byteorder | 本地字節(jié)規(guī)則的指示器,big-endian平臺的值是’big’,little-endian平臺的值是’little’ |
| sys.copyright | 記錄python版權(quán)相關的東西 |
| sys.api_version | 解釋器的C的API版本 |
| sys.version_info | Python版本信息 |
| sys.displayhook(value) | 如果value非空,這個函數(shù)會把他輸出到sys.stdout,并且將他保存進__builtin__…指在python的交互式解釋器里,’‘代表上次你輸入得到的結(jié)果,hook是鉤子的意思,將上次的結(jié)果鉤過來 |
| sys.getdefaultencoding() | 返回當前你所用的默認的字符編碼格式,一般默認為ascii |
| sys.getfilesystemencoding() | 返回將Unicode文件名轉(zhuǎn)換成系統(tǒng)文件名的編碼的名字 |
| sys.setdefaultencoding(name) | 用來設置當前默認的字符編碼,如果name和任何一個可用的編碼都不匹配,拋出LookupError,這個函數(shù)只會被site模塊的sitecustomize使用,一旦別site模塊使用了,他會從sys模塊移除 |
| sys.builtin_module_names | Python解釋器導入的模塊列表 |
| sys.executable | Python解釋程序路徑 |
| sys.getwindowsversion() | 獲取Windows的版本,Windows系統(tǒng)中有效 |
| sys.stdin.readline() | 從標準輸入讀一行,會讀取末尾的換行符 |
| sys.stdout.write() | 向標準輸出寫入內(nèi)容,例如:sys.stdout.write(“hello world”),屏幕輸出 hello world |
sys.path 返回模塊的搜索路徑,初始化時使用PYTHONPATH環(huán)境變量的值
sys.path.append(“自定義模塊路徑”)
sys.modules 是一個全局字典,該字典是 Python 啟動后就加載在內(nèi)存中。每當程序員導入新的模塊,sys.modules 將自動記錄該模塊。
當?shù)诙卧賹朐撃K時,Python 會直接到字典中查找,從而加快了程序運行的速度。它擁有字典所擁有的一切方法。
In [7]: sys.version
Out[7]: '2.7.12 (default, Dec 4 2017, 14:50:18) \n[GCC 5.4.0 20160609]'In [8]: sys.maxint
Out[8]: 9223372036854775807In [9]: sys.maxunicode
Out[9]: 1114111In [10]: sys.path
Out[10]:
['','/usr/bin','/usr/lib/python2.7','/usr/lib/python2.7/plat-x86_64-linux-gnu','/usr/lib/python2.7/lib-tk','/usr/lib/python2.7/lib-old','/usr/lib/python2.7/lib-dynload','/home/ubuntu/.local/lib/python2.7/site-packages','/usr/local/lib/python2.7/dist-packages','/usr/lib/python2.7/dist-packages','/usr/lib/python2.7/dist-packages/IPython/extensions','/home/ubuntu/.ipython']In [11]: sys.platform
Out[11]: 'linux2'In [12]: sys.api_version
Out[12]: 1013In [13]: sys.version_info
Out[13]: sys.version_info(major=2, minor=7, micro=12, releaselevel='final', serial=0)
def exitfunc(value):print (value)sys.exit(0)print "hello"try:sys.exit(90)
except SystemExit as value:exitfunc(value)print "world"
# 打印結(jié)果
# hello
# 90
程序首先打印 hello,在執(zhí)行 exit(90),拋異常把 90 傳給 value,value 在傳進函數(shù)中執(zhí)行,打印 90程序退出。后面的 ”world” 因為已經(jīng)退出所以不會被打印,而此時如果把 exitfunc 函數(shù)里面的sys.exit(0) 去掉,那么程序會繼續(xù)執(zhí)行到輸出 ”world”。
總結(jié)
以上是生活随笔為你收集整理的Python 标准库之 sys的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python 标准库之 os (获取当前
- 下一篇: Python 标准库之 json