2013-10-31 73 views
-1

在我的程序中,有2個命令行選項a1 or a2b1 or b2。如果用戶想使用這個編,他/她應該使用這些選項之一。例如,使用python argparse模塊的命令行選項

./script.py -a1 val -b1 val2 

./script.py -a1 val -b2 val2 

./script.py -a2 val -b1 val2 

./script.py -a2 val -b2 val2 

於是,他/她可以使用這些選項A1的| A2或B1 | B2。如何處理這個命令行參數並使用argparse模塊獲取這些值?

而其他選項是該程序給用戶3個選項。 -a1,-a2和-a3。但-a1正在4個值像下面,

./script.py -a1 val1 val2 val3 val4 

和-a2正在2個值像下面,

./script.py -a2 val1 val2 

和-A3正在1個值像下面,

./script.py -a3 val1 

所以我想開發處理這些命令行選項和值的程序,我怎樣才能實現這些使用​​模塊?

+1

http://docs.python.org/2/library/argparse.html – aIKid

回答

0

您想添加兩個mutually-exclusive groups,均爲required=Truea1不能與a2一起存在,對於b組也同樣如此。

如果他們都是required,那麼你必須得到確切的a之一,和b之一。

parser = argparse.ArgumentParser() 
group1 = parser.add_mutually_exclusive_group(required=True) 
group1.add_argument('--a1') 
group1.add_argument('--a2') 
#likewise for group2 
+0

那麼我怎樣才能處理-A1價值?正如你所說的,在這種情況下不能同時使用-a1和-a2,但我該如何處理-a1或-a2值? – user2424797

+0

@ user2424797我不明白你在問什麼。 – roippi