Python 處理指令碼的命令列引數(三):使用argparse

阿里瓜瓜發表於2019-01-03

 

 

 

# coding:utf-8
# 測試argparse模組的基本用法
import argparse

# 建立引數解析物件,並新增指令碼用法幫助
parser = argparse.ArgumentParser(description = 'test the base usage of argparse.')

# 新增位置引數
# 所謂位置引數,就是指直接新增的引數而不用使用'-'、'--'等符號
# 新增了位置引數,它就是必選引數
parser.add_argument('arg0')

# 新增可選引數,但如果執行命令時帶有該引數,後面必須跟引數值
# '-'後面跟短引數,'--'後面跟長引數
# help引數為該引數的幫助資訊
parser.add_argument('-a1','--arg1',help = 'this is arg1')

# 新增可選引數,但後面不能跟引數值
parser.add_argument('-a2','--arg2',help = 'this is arg2',action = 'store_true')

# 新增可選引數並指定引數值資料型別為整型,且資料範圍為[0,1,2],且指定預設值為0,如果輸入的值不是整型或值不在要求的範圍內,則會報錯
parser.add_argument('-a3','--arg3',type = int,choices = [0,1,2],default = 0,help = 'this is arg3')

# 新增一組可選的互斥引數
# a4和a5引數不能同時出現,否則會報錯
group = parser.add_mutually_exclusive_group()
group.add_argument('-a4','--arg4',action = 'store_true')
group.add_argument('-a5','--arg5',action = 'store_true')

#####################################

# 執行解析引數
args = parser.parse_args()

# 列印出位置引數'arg0'
print 'arg0 is: ',args.arg0

# 列印出其他位置引數,注意這裡要用引數的'--'名稱(長引數)
if args.arg1:
    print 'arg1 is: ',args.arg1

# 因為arg2後面沒有跟引數值,所以列印出來是True
if args.arg2:
    print 'arg2 is: ',args.arg2
    
if args.arg3:
    print 'arg3 is: ',args.arg3
    
if args.arg4:
    print 'arg4 is: ',args.arg4
    
if args.arg5:
    print 'arg5 is: ',args.arg5
    

 

相關文章