arg可分为两种: positional arguments 和 optional arguments
import argparse
parser
= argparse
.ArgumentParser
(description
="calculate X to the power of Y")
group
= parser
.add_mutually_exclusive_group
()
group
.add_argument
("-v", "--verbose", action
="store_true")
group
.add_argument
("-q", "--quiet", action
="store_true")
parser
.add_argument
("x", type=int, help="the base")
parser
.add_argument
("y", type=int, help="the exponent")
args
= parser
.parse_args
()
answer
= args
.x
**args
.y
if args
.quiet
:
print(answer
)
elif args
.verbose
:
print("{} to the power {} equals {}".format(args
.x
, args
.y
, answer
))
else:
print("{}^{} == {}".format(args
.x
, args
.y
, answer
))
参考
add_argument() 方法
ArgumentParser.add_argument(name or flags...[, action][, nargs][, const][, default][, type][, choices][, required][, help][, metavar][, dest])
定义单个的命令行参数应当如何解析。每个形参都在下面有它自己更多的描述,长话短说有:
name or flags - 一个命名或者一个选项字符串的列表,例如 foo 或 -f, --foo。
action - 当参数在命令行中出现时使用的动作基本类型。
nargs - 命令行参数应当消耗的数目。
const - 被一些 action 和 nargs 选择所需求的常数。
default - 当参数未在命令行中出现时使用的值。
type - 命令行参数应当被转换成的类型。
choices - 可用的参数的容器。
required - 此命令行选项是否可省略 (仅选项可用)。
help - 一个此选项作用的简单描述。
metavar - 在使用方法消息中使用的参数值示例。
dest - 被添加到 parse_args() 所返回对象上的属性名。
示例
import argparse
hdfs_path
= "/usr"
local_path
= '/usr'
argv
= ["--input_local_path", hdfs_path
+ "/roadtrip",
"--local_meta_path", local_path
+ "/meta",
"--epochs", "5",
"--batch_size", "36",
"--label_config_file", local_path
+ "/meta/label_config.json"]
parser
= argparse
.ArgumentParser
()
parser
.add_argument
("--input_local_path", required
=True, metavar
="<local path>")
parser
.add_argument
("--local_meta_path", required
=True, metavar
="<local path>")
parser
.add_argument
("--learning_rate", default
=1e-2, metavar
="<float>", type=float)
parser
.add_argument
("--regularizers_weight", default
=1e-3, metavar
="<float>", type=float)
parser
.add_argument
("--epochs", default
=100, metavar
="<int>", type=int)
parser
.add_argument
("--batch_size", default
=128, metavar
="<int>", type=int)
parser
.add_argument
("--label_config_file", required
=True, metavar
="<str>")
parser
.add_argument
("--model_sub_name", default
="", metavar
="<str>")
args
= parser
.parse_args
(argv
)
print(args
)
参考