python sys模塊使用詳情

 

 python經常使用模塊目錄html

 

sys模塊提供了一系列有關Python運行環境的變量和函數。
一、sys.argv
能夠用sys.argv獲取當前正在執行的命令行參數的參數列表(list)。
變量解釋
sys.argv[0]當前程序名
sys.argv[1]第一個參數
sys.argv[2]第二個參數
len(sys.argv)-1 參數個數(減去文件名)python

1) import sys print(sys.argv) print(sys.argv[0]) print(sys.argv[1]) print("第二個參數:%s"%sys.argv[2]) print("參數個數:%s"%(len(sys.argv)-1)) -------------------結果: #python /root/mcw.py arg1 arg2 ['/root/mcw.py', 'arg1', 'arg2'] /root/mcw.py #當前程序名 arg1 第二個參數:arg2 參數個數:2
2) 若是執行用的相對路徑,返回的是相對路徑 print(sys.argv[0]) ----------------結果: [root@xiaoma /root] test! #python ./mcw.py ./mcw.py

#sys.argv =['/root/mcw.py', 'arg1', 'arg2'] ,列表第一個元素爲程序執行相對路徑,第二個元素開始爲程序傳參

二、sys.path
返回模塊的搜索路徑,初始化時使用PYTHONPATH環境變量的值linux

import sys print(sys.path) ---------------------結果: ['D:\\aPython_full目錄\\小馬過河的代碼練習', 'C:\\mcw', 'C:\\mcw\\venv\\Scripts\\python36.zip', 'C:\\python3\\DLLs', 'C:\\python3\\lib', 'C:\\python3', 'C:\\mcw\\venv', 'C:\\mcw\\venv\\lib\\site-packages', 'C:\\mcw\\venv\\lib\\site-packages\\setuptools-39.1.0-py3.6.egg', 'C:\\mcw\\venv\\lib\\site-packages\\pip-10.0.1-py3.6.egg', 'C:\\軟件安裝\\PyCharm 2018.3.5\\helpers\\pycharm_matplotlib_backend'] 添加系統環境變量: import sys,os BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) print(BASE_DIR) #添加系統環境變量 sys.path.append(BASE_DIR) print(sys.path)

-------

import sys
sys.path.append("C:\python3\Scripts")
print(sys.path)
------------------結果:
['D:\\.........., 'C:\\python3\\Scripts']vim

三、sys.platform
獲取當前執行環境的平臺,如win32表示是Windows系統,linux2表示是linux平臺app

print(sys.platform) -------------結果: win32 -------------結果: [root@xiaoma /root] test! #python mcw.py linux2

四、sys.exit(n)
調用sys.exit(n)能夠中途退出程序,當參數非0時,會引起一個SystemExit異常,從而能夠在主程序中捕獲該異常。函數

#vim mcw.py import sys sys.exit(3) ----------結果: [root@xiaoma /root] test! #python mcw.py [root@xiaoma /root] test! #echo $?
3

五、sys.version
獲取Python解釋程序的版本信息ui

import sys print(sys.version) --------------結果: 3.6.8 (tags/v3.6.8:3c6b436a57, Dec 23 2018, 23:31:17) [MSC v.1916 32 bit (Intel)] import sys print(sys.version) --------------結果: [root@xiaoma /root] test! #python mcw.py 2.7.5 (default, Nov  6 2016, 00:28:07) [GCC 4.8.5 20150623 (Red Hat 4.8.5-11)]

六、sys.getrefcountspa

 獲取一個值的應用計數.net

a = [11,22,33]
b = a
print(sys.getrefcount(a))
--------------結果:
3 #a,b,還有gerefcount方法三個都在使用這個列表命令行

七、sys.getrecursionlimit python默認支持的遞歸數量
八、sys.stdout.write     能夠作輸出重定向

for i in range(3): print("魔降風雲變") import sys for i in range(3): sys.stdout.write('小馬過河') -----------------結果: 魔降風雲變 魔降風雲變 魔降風雲變 小馬過河小馬過河小馬過河 import sys for i in range(3): sys.stderr.write('小馬過河') ------------------結果: 小馬過河小馬過河小馬過河

stdout 是一個類文件對象;調用它的 write 函數能夠打印出你給定的任何字符串。
實際上,這就是 print 函數真正作的事情;它在你打印的字符串後面加上一個硬回車,而後調用 sys.stdout.write 函數。
在最簡單的例子中,stdout 和 stderr 把它們的輸出發送到相同的地方
和 stdout 同樣,stderr 並不爲你添加硬回車;若是須要,要本身加上。
stdout 和 stderr 都是類文件對象,可是它們都是隻寫的。
它們都沒有 read 方法,只有 write 方法。然而,它們仍然是類文件對象,所以你能夠將其它任何 (類) 文件對象賦值給它們來重定向其輸出。

九、sys.modules

import sys,os print(sys.modules.keys()) -----------------------結果; dict_keys(['builtins', 'sys', '_frozen_importlib', '_imp', '_warnings', '_thread', '_weakref', '_frozen_importlib_external', '_io', 'marshal', 'nt', 'winreg', 'zipimport', 'encodings', 'codecs', '_codecs', 'encodings.aliases', 'encodings.utf_8', '_signal', '__main__', 'encodings.latin_1', 'io', 'abc', '_weakrefset', 'site', 'os', 'errno', 'stat', '_stat', 'ntpath', 'genericpath', 'os.path', '_collections_abc', '_sitebuiltins', '_bootlocale', '_locale', 'encodings.gbk', '_codecs_cn', '_multibytecodec', 'sysconfig', 'encodings.cp437', 'sitecustomize'])

 

 

參考連接:1)https://cloud.tencent.com/developer/article/11752672)https://blog.csdn.net/u013176681/article/details/53607565

相關文章
相關標籤/搜索