Python argparse允许组合标志
argparse是否可以像这样分析组合标志:
app.py -bcda something
在这种情况下,我希望something
设置为-a
,其余的将存储为True。基本上:
app.py -b -c -d -a something
我知道大多数程序都允许这样做,例如grep -rEw
,但是用argparse做到这一点有多困难?
编辑: 答案是,它是开箱即用的。我什至没有去尝试。
-
您可以使用store_const实现此目的:
parser = argparse.ArgumentParser() parser.add_argument('-a', action='store_const', const=True, default=False) parser.add_argument('-b', action='store_const', const=True, default=False) args = parser.parse_args()
然后,您可以使用
-a -b
或使用-ab
(或-a
,或-b
)从命令行调用它。编辑:如果您希望其中一个标志作为参数,则需要将其作为链的最后一项传递。因此,如果
a
有一个论点,您需要-bcda something