Python argparse允许组合标志

发布于 2021-01-29 15:21:29

argparse是否可以像这样分析组合标志:

app.py -bcda something

在这种情况下,我希望something设置为-a,其余的将存储为True。基本上:

app.py -b -c -d -a something

我知道大多数程序都允许这样做,例如grep -rEw,但是用argparse做到这一点有多困难?

编辑: 答案是,它是开箱即用的。我什至没有去尝试。

关注者
0
被浏览
47
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    您可以使用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



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看