python argparse(參數解析模塊)


 


這是一個參數解析,可以用它快捷的為你的程序生成參數相關功能

 

import argparse(導入程序參數模塊)


# 創建argparse對象,並將產品簡要說明加入
show = '程序說明' ===>程序簡要說明(字符串),輸出help時會顯示
p = argparse.ArgumentParser(description=show)

 


# 創建一個參數,如果參數名稱前沒有‘-’或‘--’則該參數為必填參數,如果程序運行時不給它賦值則程序將拋出異常(賦值時直接給值即可,不需輸參數名,參考ping命令)
p.add_argument('參數名稱(-h時會顯示)', '--別名(選填,'-參數名稱 = --別名')',+各種參數。。。)

# 創建一個‘--’參數,如果參數前有‘--’則為可選參數。在輸入‘--參數’后再賦值。
p.add_argument('--參數名稱',+各種參數。。。)

# 創建一個‘-’參數,如果參數前有‘-’則為可選參數。在輸入‘-參數’后再賦值。注意:如果參數有別名則實際參數值是賦給了別名。
p.add_argument('-參數名稱', '--別名(選填,'-參數名稱 = --別名')',+各種參數。。。)


add_argument方法參數說明:

help:針對該參數的說明。例:help='this display information'

type:該參數字符類型(str,int,float等),如果輸入類型不對則會拋異常。例:type=int

action:當該參數值為"store_true"時表示創建的是一個機關,帶該參數時則表示開啟該機關(創建的參數(機關)此時的值為True),不帶該參數時則表示關閉該機關(創建的參數(機關)此時的值為False)。
(例:p.add_argument('--v',action='store_true') ===>如果帶該參數則‘v’的值為true)

choices:限定參數值范圍(規定只接收規定列表中的值),值為列表。例:choices=[1,2,3]

default:指定參數默認值。例:default=100

 

 


# 獲取程序參數的值,args是一個對象,該對象里的若干屬性等於參數(提取參數的值:args.參數名稱)
args = p.parse_args()

 

 

# 創建兩個互斥的參數
group = parser . add_mutually_exclusive_group () ======> 創建一個互斥組
group.add_argument ( "-v" , "--verbose" , action = "store_true" ) ====>互斥組內的參數不可同時出現,否則拋異常
group.add_argument ( "-q" , "--quiet" , action = "store_true" ) ====>互斥組內的參數不可同時出現,否則拋異常

 

 

 

 

 

代碼實例:

 

import argparse
# 創建參數功能對象
show = '這是一個求長方形面積或長方體體積的程序'
p = argparse.ArgumentParser(description=show)

# 創建各個參數
p.add_argument('-x', help='長方形的底邊長度', type=int, choices=[1, 2, 3], default=2)
p.add_argument('-z', '--kuan', help='另外一條邊長', type=int, choices=[1, 2, 3], default=2)
p.add_argument('-y', '--gao', help='長方體的高度', type=int, choices=[1, 2, 3], default=2)

# 創建互斥參數
group = p.add_mutually_exclusive_group()
group.add_argument('-v', action="store_true", help='求長方形面積')
group.add_argument('-vv', action="store_true", help='求長方體體積')

# 提取參數的賦值
args = p.parse_args()

# 利用參數的值進行計算
if args.v:
  print('長方形面積是%d' % (args.x * args.kuan))
elif args.vv:
  print('長方體體積是%d' % (args.x * args.kuan * args.gao))
else:
  print('請用使用參數表明你要使用的功能!')

 

程序執行命令:python a.py -x 3 -y 1 -z 2 -vv


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM