【问题标题】:Argparse: "-p" or "-p=value" but not "-p value"argparse:“-p”或“-p=value”,但不是“-p value”
【发布时间】:2021-09-06 18:20:57
【问题描述】:

有没有办法添加只能用作-p-p=value 而不能用作-p value 的参数

我想在脚本中添加一个可选参数--parallel/-p。这是我希望用户传递它的方式:

./script arg1 arg2 -p    # this defaults to 10
./script arg1 arg2 -p=13 # This is fine and will set the value to 13
./script arg1 arg2 -p 13 # This is NOT fine and I want to ban this. Next line will tell why.
./script -p arg1 arg2    # I want -p to be usable regardless of its position. 
# But here arg1 will be considered as an argument of -p option, which is unwanted.

【问题讨论】:

    标签: python argparse


    【解决方案1】:

    不幸的是,您在这里遇到了两个问题:

    • argparse 只允许--option=value 用于长参数,当名称超过一个字符时生成。

    • argparse 无法强制执行 --option=value 语法,--option value 将始终可用。

    您可能必须使用 sys.args 中的内容编写自己的解析器(如果您只有一个选项,可以通过搜索以 "-p" 开头的参数来快速完成。

    【讨论】:

      猜你喜欢
      • 2022-01-23
      • 2014-12-18
      • 1970-01-01
      • 2020-04-16
      • 2015-08-20
      • 1970-01-01
      • 1970-01-01
      • 2012-08-30
      • 1970-01-01
      相关资源
      最近更新 更多