首页 文章

没有参数的Python argparse命令行标志

提问于
浏览
229

如何在命令行参数中添加可选标志?

例如 . 所以我可以写

python myprog.py

要么

python myprog.py -w

我试过了

parser.add_argument('-w')

但我只是收到一条错误消息

Usage [-w W]
error: argument -w: expected one argument

我认为它意味着它需要-w选项的参数值 . 接受国旗的方式是什么?

我发现http://docs.python.org/library/argparse.html在这个问题上相当不透明 .

3 回答

  • 26

    正如你所拥有的那样,参数w在命令行上的-w之后需要一个值 . 如果您只是想通过设置变量 TrueFalse 来切换开关,请查看http://docs.python.org/dev/library/argparse.html#action(特别是store_true和store_false)

    parser.add_argument('-w', action='store_true')
    

    Edit: 正如Sven所指出的,在这种情况下,默认值是多余的 .

  • 355

    添加快速代码段以准备执行:

    Source: myparser.py

    import argparse
    parser = argparse.ArgumentParser(description="Flip a switch by setting a flag")
    parser.add_argument('-w', action='store_true')
    
    args = parser.parse_args()
    print args.w
    

    Usage:

    python myparser.py -w
    >> True
    
  • -6

    这里's a quick way to do it, won' t除了 sys 之外还需要任何东西..虽然功能有限:

    flag = "--flag" in sys.argv[1:]

    如果完整文件名是 --flag ,则为 [1:]

相关问题