argparse .ArgumentParser引发ArgumentError

时间:2019-03-22 17:33:37

标签: python argparse

table <- s3read_using(FUN=fread, quote="\"", object='mytable.csv', bucket="mybucket/tables")

以上是错误消息, 这是我的代码, 我没有看到错误:

#1)解析参数

conflict_handler(action, confl_optionals)
  File "/usr/local/lib/python3.6/argparse.py", line 1510, in _handle_conflict_error
    raise ArgumentError(action, message % conflict_string)
argparse.ArgumentError: argument -h/--height: conflicting option string: -h

2 个答案:

答案 0 :(得分:1)

选项“ -h”默认情况下预定义为“帮助”选项,该选项打印描述和参数列表。您的自定义“ -h --height”与此冲突,从而导致错误。

最好覆盖默认的“ -h --help”选项,因为许多用户希望使用“ -h”选项来打印帮助消息。 (因此,如果我是您,我会找到另一种方法来命名该选项。)但是如果确实需要,可以将add_help parameter与构造函数一起使用来忽略它。像这样:

parser = argparse.ArgumentParser(description="Description for my parser", add_help=False)

如果要保留“ --help”选项,则必须添加另一行parser.add_argument("--help", action="help")。 (感谢chepner

答案 1 :(得分:0)

错误提示您使用的参数名称与其他名称冲突。特别是在这种情况下,-h选项。 lib argparse始终包含-h选项以打印脚本帮助,因此对于高度,必须使用与-h不同的参数,例如-ht。

parser = argparse.ArgumentParser(description="Description for my parser")
parser.add_argument("-v", "--velocity", action="store", required=True, help="The velocity of the object is required")
parser.add_argument("-a", "--angle", action="store", type=float, required=True, help="The angle of the object is required")
parser.add_argument("-ht", "--height", required=False, default= 1.2, help="The height of the object is not required. Default is set to 1.2 meters" )