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="") # metavar 在-h时可以给一个示例
parser.add_argument("--local_meta_path", required=True, metavar="")
parser.add_argument("--learning_rate", default=1e-2, metavar="", type=float)
parser.add_argument("--regularizers_weight", default=1e-3, metavar="", type=float)
parser.add_argument("--epochs", default=100, metavar="", type=int)
parser.add_argument("--batch_size", default=128, metavar="", type=int)
parser.add_argument("--label_config_file", required=True, metavar="")
parser.add_argument("--model_sub_name", default="", metavar="")
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_meta_path
#                      [--learning_rate ]
#                     [--regularizers_weight ] [--epochs ]
#                     [--batch_size ] --label_config_file 
#                     [--model_sub_name ]
# 
# optional arguments:
#   -h, --help            show this help message and exit
#   --input_local_path 
#   --local_meta_path 
#   --learning_rate 
#   --regularizers_weight 
#   --epochs 
#   --batch_size 
#   --label_config_file 
#   --model_sub_name 


参考

你可能感兴趣的:(Python)