argparse使用,add_argument() 方法

  • 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>


参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值