argparse--- 命令行选项、参数和子命令解析器

1、介绍

    argparse模块可以让我们很方便的编写命令行语句,它可以帮助我们从命令行中解析出程序所需要的参数,argparse模块还自动生成帮助和用法消息。当用户给程序输入无效参数时,模块也会发出错误。

2、使用方法

  1. 创建一个解析器,使用 argparse.ArgumentParser() 构建实例
parse = argparse.ArgumentParser(
                prog = 'ProgramName', 
                description = 'What the program dose',
                epilog = 'Text at thr bottom of help'
)
  1. 添加参数: 使用 ArgumentParser.add_argument() 将参数规范附加到解析器

    • "--dataset": 表示所添加的参数的名称

    • type=str: 表示数据类型

    • default="cora": 表示默认值

    • hlep: 可以写入一些参数说明,比如该参数有哪几种取值等

    parser.add_argument(
        "--dataset",
        type=str,
        default="cora",
        help="Dataset name ('cora', 'citeseer', 'pubmed').",
    )
  1. 解析参数: 使用 ArgumentParser.parse_args() 方法运行解析器从命令行中提取数据,并将数据放入变量args中
args = parser.parse_args()

        ps: 有一次用这种方式发生了报错,改用

              args = parser.parse_know_args()[0] 就好了

3、add_argument() 方法中的一些其它可选字段

NameDescriptionValues
action指定应如何处理参数'store''store_const''store_true''append''append_const''count''help''version'
choices取值限制为特定的选项集['foo', 'bar']range(1, 10), or Container instance
const存储一个常量
default指定一个默认值Defaults to None
dest指定属性名称
help填写一些帮助信息
metavar参数的备用显示名称
nargs参数可以使用的次数int'?''*''+', or argparse.REMAINDER
required指示一个参数是必需的还是可选的True or False
type可以将参数转换为给定类型intfloatargparse.FileType('w'), or callable function