python argparse 引數解析模組

2022-08-23 10:15:13 字數 2529 閱讀 9200

這是乙個引數解析,可以用它快捷的為你的程式生成引數相關功能

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

python argparse 模組命令列引數解析

argparse 是 python 的乙個命令列解析包,可根據需要編寫高可讀性的程式。網上的許多教程較為冗長和散漫,沒有達到精練好掌握的目的,本文針對專案中對 argparse 的用法,用例項對各個引數進行講解,力求達到讓讀者秒懂的目的。先上 import argparse if name main...

python argparse舉例說明

目的 想從命令列通過命令來指定是否執行程式中的某個函式 模組 更新關於另乙個例子 這裡只舉例說明 原因是看了很多博文之後,還是沒有解決筆者上面說的那個問題,即如何從命令列決定是否執行某段函式問題 設定乙個引數,名為foreground,簡寫f 即在終端可以輸入 foreground也可以輸入 f。跟...

Python argparse模組的使用

最近在看github上的mmskeleton專案時,遇到了python中的argparse模組。於是查閱了一下資料 根據官方給出的argparsetutorial,該模組的作用在於對命令列進行解析。英文比較好的朋友,建議直接看tutorial,其中的解釋還是很清楚的。看英文比較頭疼的朋友,也可以參考...