目录
argparse
功能:模块可以让人轻松编写用户友好的命令行接口程序定义它需要的参数,然后 argparse
将弄清如何从 sys.argv
解析出那些参数。 argparse
模块还会自动生成帮助和使用手册,并在用户给程序传入无效参数时报出错误信息。
argparse.ArgumentParser(prog=None,
usage=None,
description=None,
epilog=None,
parents= [],
formatter_class=argparse.HelpFormatter,
prefix_chars='',
fromfile_prefix_chars=None,
argument_default=None,
conflict_handler='error',
add_help=True,
allow_abbrev=True)
-
prog - 程序的名称(默认值:
sys.argv[0]
) -
usage - 描述程序用途的字符串(默认值:从添加到解析器的参数生成)
-
description - 在参数帮助文档之前显示的文本(默认值:无)
-
epilog - 在参数帮助文档之后显示的文本(默认值:无)
-
parents - 一个
ArgumentParser
对象的列表,它们的参数也应包含在内 -
formatter_class - 用于自定义帮助文档输出格式的类
-
prefix_chars - 可选参数的前缀字符集合(默认值: '-')
-
fromfile_prefix_chars - 当需要从文件中读取其他参数时,用于标识文件名的前缀字符集合(默认值:
None
) -
argument_default - 参数的全局默认值(默认值:
None
) -
conflict_handler - 解决冲突选项的策略(通常是不必要的)
-
add_help - 为解析器添加一个
-h/--help
选项(默认值:True
) -
allow_abbrev - 如果缩写是无歧义的,则允许缩写长选项 (默认值:
True
)
ArgumentParser.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 - 命令行参数应当消耗的数目。
-
default - 当参数未在命令行中出现时使用的值。
-
type - 命令行参数应当被转换成的类型。
-
choices - 可用的参数的容器。
-
required - 此命令行选项是否可省略 (仅选项可用)。
-
help - 一个此选项作用的简单描述。
-
metavar - 在使用方法消息中使用的参数值示例。
-
dest - 被添加到
parse_args()
所返回对象上的属性名。
示例代码
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("--data", type=str, default="bunny",
help="Load some points data, choices are \"bunny\", \"circle\", \"eclipse\", "
"or \"a_path_to_your_ply_file\".")
parser.add_argument("--n_samples", type=int, default=50, help="Number of samples we would like to draw.")
parser.add_argument("--manually_step", type=bool, default=False,
help="Hit \"N/n\" key to step sampling forward once.")
args = parser.parse_args()
example_data = args.data
n_samples = args.n_samples
manually_step = args.manually_step
parser = argparse.ArgumentParser()
parser.add_argument('--data_root', type=str, required=True, help='Root to the dataset')
parser.add_argument('--batch_size', type=int, default=32, help='Batch size')
parser.add_argument('--npoints', type=int, default=1024, help='Number of the training points')
parser.add_argument('--nclasses', type=int, default=40, help='Number of classes')
parser.add_argument('--augment', type=bool, default=False, help='Augment the train data')
parser.add_argument('--dp', type=bool, default=False, help='Random input dropout during training')
parser.add_argument('--model', type=str, default='pointnet2_cls_ssg', help='Model name')
parser.add_argument('--gpus', type=str, default='0', help='Cuda ids')
parser.add_argument('--lr', type=float, default=0.001, help='Initial learing rate')
parser.add_argument('--decay_rate', type=float, default=1e-4, help='Initial learing rate')
parser.add_argument('--nepoches', type=int, default=251, help='Number of traing epoches')
parser.add_argument('--step_size', type=int, default=20, help='StepLR step size')
parser.add_argument('--gamma', type=float, default=0.7, help='StepLR gamma')
parser.add_argument('--log_interval', type=int, default=10, help='Print iterval')
parser.add_argument('--log_dir', type=str, required=True, help='Train/val loss and accuracy logs')
parser.add_argument('--checkpoint_interval', type=int, default=10, help='Checkpoint saved interval')
args = parser.parse_args()
参考
https://docs.python.org/zh-cn/3.8/library/argparse.html