常配合sys模塊,用來處理命令行參數(shù)
常用方法:
- getopt
- GetoptError
-
getopt(args, shortopts, longopts = [])
用來處理命令行參數(shù)段多;GetoptError
錯(cuò)誤處理
args
:?????????一般格式是配合sys模塊的sys.argv
shortopts
:??短格式(-
)加字母 -p
longopts
:???長(zhǎng)格式(--
)加單詞 --port
#text.py
import sys
import getopt
try:
opts,args = getopt.getopt(sys.argv[1:],"hp:u",["help","port=","url="])
print(opts)
print(args)
except getopt.GetoptError as err:
print(str(err))
運(yùn)行:
> text.py -h
[('-h', '')]
[]
> text.py -p 80
[('-p', '80')]
[]
> text.py --url https://www.baidu.com
[('--url', 'https://www.baidu.com')]
[]
> text.py 8080
[]
['8080']
> text.py -k
option -k not recognized
opts,args = getopt.getopt(sys.argv[1:],"hp:u",["help","port=","url="])
opts
:
一個(gè)兩元組的列表,每個(gè)元素為:( 選項(xiàng)串, 附加參數(shù)) ,如果沒有附加參數(shù)則為空串'' 家制。
args
:
一個(gè)列表彬犯,包含那些沒有加
‘-’
或‘--’
的參數(shù)拐云,比如:80婿着,p
sys.argv[1:]
:
過濾掉第一個(gè)參數(shù)(
sys.argv[0]
是當(dāng)前執(zhí)行腳本的名字授瘦,不算作參數(shù)的一部分)
"hp:u"
:
短格式參數(shù),
':'
表示后面帶一個(gè)參數(shù)竟宋。hp:u
定義了三個(gè)短格式參數(shù):'h' 'p:' 'u'
提完,'p:'
代表p后面有一個(gè)值-p 80
["help","port=","url="]
:
長(zhǎng)格式參數(shù),
'='
表示后面帶一個(gè)參數(shù)丘侠。--port 8080
#text.py
import sys
import getopt
def usage():
print("Usage: text.py -h help -p port -u URL")
try:
opts,args = getopt.getopt(sys.argv[1:],'hp:u',['help','port=','url='])
except getopt.GetoptError as err:
print(str(err))
usage()
sys.exit(0)
for o,a in opts:
if o in ('-h','--help'):
usage()
sys.exit(0)
elif o in ('-p','--port'):
print("PORT")
elif o in ('-u','--url'):
print("URL")
運(yùn)行:
> text.py -h
Usage: text.py -h help -p port -u URL
> text.py -p 20
PORT
> text.py --url https://www.bilibili.com
URL
> text.py -p 80 --url https://www.bilibili.com
PORT
URL