【发布时间】:2019-12-27 12:10:27
【问题描述】:
是否有任何其他 python 包或 argparse 是否具有我所期待的以下功能
arg_parser.add_argument("-v", "--some_data", required=True,
help="data id(int) or vehicle name (str) ")
input -v 123 output type(args.some_data) --> int
input -v abc output type(args.some_data) --> str
input -v a12 output type(args.some_data) --> str
【问题讨论】:
-
默认情况下,所有参数都被视为
str,但您可以使用str.isnumeric或str.isdecimal。 -
这种行为(自动“我知道你的意思”输入)通常被视为一种反特性——但你可以使用类似
type=yaml.safe_load的东西——或者你自己的函数来执行@987654327 @与int(...) -
“0xff”的类型是什么——整数还是字符串?您应该明确定义规则,并拒绝猜测的诱惑。 argparse 中没有这样的“猜测”功能。
-
Pypi 存储库中有许多命令行解析器,一些基于
argparse,其他从头开始解析。所以很难说有没有这个功能。argparse不这样做,但您可以编写自己的type函数来执行您想要的操作。该函数只需要接受一个字符串,并返回一些值(或引发错误)。剩下的就看你自己了。
标签: python python-3.x argparse