argparse使用,add

tech2023-05-24  95

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") # 命令行中有这个命令,后面args.verbose就对应为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>") # metavar 在-h时可以给一个示例 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) # 输出 # Namespace(batch_size=36, epochs=5, input_local_path='/usr/roadtrip', label_config_file='/usr/meta/label_config.json', learning_rate=0.01, local_meta_path='/usr/meta', model_sub_name='', regularizers_weight=0.001) # python argparser.py -h # usage: argparser.py [-h] --input_local_path <local path> --local_meta_path # <local path> [--learning_rate <float>] # [--regularizers_weight <float>] [--epochs <int>] # [--batch_size <int>] --label_config_file <str> # [--model_sub_name <str>] # # optional arguments: # -h, --help show this help message and exit # --input_local_path <local path> # --local_meta_path <local path> # --learning_rate <float> # --regularizers_weight <float> # --epochs <int> # --batch_size <int> # --label_config_file <str> # --model_sub_name <str>

参考

最新回复(0)