sys 模組通過 sys.argv 屬性提供了對命令列引數的訪問。 命令列引數是呼叫某個程式時除程式名以外的其它引數。這樣命名是有歷史原因的,在乙個基於文字的環境裡(比如 unix 作業系統的 shell 環境或者 dos-shell ),這些引數和程式的檔名一同被輸入的。但在 ide 或者 gui 環境中可能就不會是這樣了, 大多 ide 環境都提供乙個用來輸入」命令列引數」的視窗;這些引數最後會像命令列上執行那樣被傳遞給程式。
熟悉 c 語言的讀者可能會問了, 「argc 哪去了?」 argc 和 argv 分別代表引數個數(argument count)和引數向量(argument vector)。argv 變數代表乙個從命令列上輸入的各個引數組成的字串陣列;argc 變數代表輸入的引數個數。在 python 中, argc 其實就是 sys.argv 列表的長度,而該列表的第一項 sys.argv[0] 永遠是程式的名稱。
在python中 處理命令列引數的模組有兩個:
1 getopt()
該模組是專門用來處理命令列引數的。
函式原型
getopt(args, shortopts, longopts =)
說明:
測試**:
#!/usr/bin/env python # start line
# module doc
# imported modules
import sys,getopt
# variable definitions
# class definition
# function definition
# main program
defmain
(): proc_cmd_args()
defproc_cmd_args
():try:
options,args = getopt.getopt(sys.argv[1:],"hp:i:",["help","ip=","port="])
except getopt.getopterror:
sys.exit()
for name,value in options:
if name in ("-h","--help"):
usage()
if name in ("-i","--ip"):
print
'ip is----',value
if name in ("-p","--port"):
print
'port is----',value
if __name__ == '__main__':
main()
測試:
python
test.py
-i127.0.
0.1-
p805566
python
test.py
--ip=127.0
.0.1
--port=80
5566
執行效果:
ip is
---- 127.0.0.1
port
is---- 80
或者
ip is
---- 127.0.0.1
port
is---- 80
解釋說明:
返回值 options 是個包含元祖的列表,每個元祖是分析出來的格式資訊,比如 [(『-i』,』127.0.0.1』),(『-p』,』80』)] ;
args 是個列表,包含那些沒有『-』或『–』的引數,比如:[『55』,』66』]
注意:定義命令列引數時,要先定義帶』-『選項的引數,再定義沒有『-』的引數
2 關於optparse,請參考這篇文章《[python]使用optparse快速開發命令列解釋程式》
Python 基礎知識
來自 一 識別符號 1.python 中的識別符號是區分大小寫的。2.標示符以字母或下劃線開頭,可包括字母,下劃線和數字。3.以下劃線開頭的識別符號是有特殊意義的。以單下劃線開頭 foo 的代表不能直接訪問的類屬性,需通過類提供的介面進行訪問,不能用 from import 而匯入 以雙下劃線開頭的...
python基礎知識
一.隨機數的生成 都需要 import random 1.用於生成乙個指定範圍內的隨機浮點數。print random.uniform 10,20 print random.uniform 20,10 2.生成乙個指定範圍內的整數。下限必須小於上限制 print random.randint 12,...
python基礎知識
py基礎學習 1.命令列輸入python命令式,例如python test.py c m install sys.argv test.py c m install 2.切片,str 0 5 1 含頭不含尾,表示倒序切 3.unicode和encode unicode str,utf 8 將utf 8...