本系列文章來源:<a>https://blog.ansheng.me/article/python-full-stack-way</a>
This module provides access to some variables used or maintained by the interpreter and to functions that interact strongly with the interpreter. It is always available.
sys模塊用于提供對解釋器相關(guān)的操作
模塊方法 解釋說明
sys.argv 傳遞到Python腳本的命令行參數(shù)列表祠斧,第一個元素是程序本身路徑
sys.executable 返回Python解釋器在當前系統(tǒng)中的絕對路徑
sys.exit([arg]) 程序中間的退出假颇,arg=0為正常退出
sys.path 返回模塊的搜索路徑饮戳,初始化時使用PYTHONPATH環(huán)境變量的值
sys.platform 返回操作系統(tǒng)平臺名稱蹄衷,Linux是linux2窖维,Windows是win32
sys.stdout.write(str) 輸出的時候把換行符\n去掉
val = sys.stdin.readline()[:-1] 拿到的值去掉\n換行符
sys.version 獲取Python解釋程序的版本信息
1.位置參數(shù)
[root@ansheng ~]# cat scripts.py
#!/usr/bin/env python
import sys
print(sys.argv[0])
print(sys.argv[1])
print(sys.argv[2])
[root@ansheng ~]# python scripts.py canshu1 canshu2
scripts.py
canshu1
canshu2
sys.argv[0]代表腳本本身毅臊,如果用相對路徑執(zhí)行則會顯示腳本的名稱杜恰,如果是絕對路徑則會顯示腳本名稱绑洛;
2.程序中途退出
python在默認執(zhí)行腳本的時候會由頭執(zhí)行到尾狂丝,然后自動退出换淆,但是如果需要中途退出程序, 你可以調(diào)用sys.exit函數(shù)哗总,它帶有一個可選的整數(shù)參數(shù)返回給調(diào)用它的程序. 這意味著你可以在主程序中捕獲對sys.exit的調(diào)用。(注:0是正常退出倍试,其他為不正常讯屈,可拋異常事件供捕獲!)
原腳本和輸出的結(jié)果:
[root@iZ28i253je0Z sys]# cat sys-03.py
#!/usr/bin/python
# _*_ coding:utf-8 _*_
import sys
print "hello word!"
print "your is pythoner"
[root@iZ28i253je0Z sys]# python sys-03.py
hello word!
your is pythoner
執(zhí)行腳本之后會輸出,下面這兩段內(nèi)容:
hello word!
your is pythoner
然后我們在print "hello word县习!"之后讓程序退出不執(zhí)行print "your is pythoner"
[root@iZ28i253je0Z sys]# cat sys-03.py
#!/usr/bin/python
# _*_ coding:utf-8 _*_
import sys
print "hello word!"
sys.exit()
print "your is pythoner"
[root@iZ28i253je0Z sys]# python sys-03.py
hello word!
PS:sys.exit從python程序中退出涮母,將會產(chǎn)生一個systemExit異常,可以為此做些清除除理的工作躁愿。這個可選參數(shù)默認正常退出狀態(tài)是0叛本,以數(shù)值為參數(shù)的范圍為:0-127。其他的數(shù)值為非正常退出彤钟,還有另一種類型来候,在這里展現(xiàn)的是strings對象類型。
3.獲取模塊路徑
在使用Python中用import逸雹、import導(dǎo)入模塊的時候营搅,那Python是怎么判斷有沒有這個模塊的呢? 其實就是根據(jù)sys.path的路徑來搜索你導(dǎo)入模塊的名稱。
>>> for i in sys.path:
... print(i)
...
/usr/local/lib/python3.5/site-packages/pysnmp_apps-0.4.1-py3.5.egg
/usr/local/lib/python3.5/site-packages/pysnmp-4.3.2-py3.5.egg
/usr/local/lib/python3.5/site-packages/pycrypto-2.6.1-py3.5-linux-x86_64.egg
/usr/local/lib/python3.5/site-packages/pysmi-0.0.7-py3.5.egg
/usr/local/lib/python3.5/site-packages/pyasn1-0.1.9-py3.5.egg
/usr/local/lib/python3.5/site-packages/ply-3.9-py3.5.egg
/usr/local/lib/python3.5/site-packages/setuptools-19.2-py3.5.egg
/usr/local/lib/python35.zip
/usr/local/lib/python3.5
/usr/local/lib/python3.5/plat-linux
/usr/local/lib/python3.5/lib-dynload
/usr/local/lib/python3.5/site-packages
4.獲取當前系統(tǒng)平臺
Linux:
>>> sys.platform
'linux
Windows:
In [3]: import sys
In [4]: sys.platform
Out[4]: 'win32'