2013-04-10 59 views
4

我試圖用Python的argparse模塊構建一個命令行界面。我需要兩個位置參數,一個取決於另一個(相互包含)。下面是我想:使用argparse創建相互包含的位置參數

prog [arg1 [arg2]] 

這是我到目前爲止有:這是由生產

prog [arg1] [arg2] 

parser = argparse.ArgumentParser() 
parser.add_argument('arg1', nargs='?') 
parser.add_argument('arg2', nargs='?') 

我怎樣從有到有一個相互包容arg2的?

+2

看看https://github.com/docopt/docopt – 2013-04-10 19:51:58

回答

0

您可以使用sub_parsers做類似的事情。

這裏是文檔和示例:

http://docs.python.org/2/library/argparse.html#sub-commands

+0

不幸的是,這是行不通的,因爲ARG1需要是動態的。子命令是固定的字符串。例如,prog multiarg arg1 arg2,其中multiarg是固定的命令字符串。另外,即使在添加子命令後,您也會遇到相同的情況。 – pumazi 2013-04-11 16:25:28

相關問題