[TOC] <br/><br/><br/> # <b style="color:#4F4F4F;">简介说明</b> 原文链接: - [argparse](https://docs.python.org/zh-cn/3.9/library/argparse.html#module-argparse) ``` 版本:argparse 作用:命令行参数解析包 ``` <br/> # <b style="color:#4F4F4F;">argparse.ArgumentParser</b> <br/> # <span style="color:#619BE4">[new]-ArgumentParser()</span> ***** 创建解析参数对象 <br/> ### 参数说明 <b style="color:#808080;">prog:</b> * 类型:字符串 * 默认值:sys.argv[0] * 描述:程序的名称 * 可选值:[ ] <b style="color:#808080;">usage:</b> * 类型:字符串 * 默认值:sys.argv[0] * 描述:描述程序用途的字符串 * 可选值:[ ] <b style="color:#808080;">description:</b> * 类型:字符串 * 默认值:无 * 描述: 在参数帮助文档之前显示的文本 * 可选值:[ ] <b style="color:#808080;">epilog:</b> * 类型:字符串 * 默认值:无 * 描述: 在参数帮助文档之后显示的文本 * 可选值:[ ] <b style="color:#808080;">parents:</b> * 类型:列表 * 默认值:无 * 描述: 一个 ArgumentParser 对象的列表,它们的参数也应包含在内 * 可选值:[ ] <b style="color:#808080;">formatter_class:</b> * 类型:argparse.HelpFormatter * 默认值:无 * 描述: 用于自定义帮助文档输出格式的类 * 可选值:[ ] <b style="color:#808080;">prefix_chars:</b> * 类型:字符串 * 默认值:\- * 描述: 可选参数的前缀字符集合,许多命令行会使用 - 当作前缀,比如 \-f/\-\-foo * 可选值:[ ] <b style="color:#808080;">fromfile_prefix_chars:</b> * 类型:字符串 * 默认值:无 * 描述: 当需要从文件中读取其他参数时,用于标识文件名的前缀字符集合 * 可选值:[ ] <b style="color:#808080;">argument_default:</b> * 类型:字符串 * 默认值:无 * 描述: 参数的全局默认值,默认情况参数会有None的默认值,想要禁用设置SUPPRESS * 可选值:[ argparse.SUPPRESS ] <b style="color:#808080;">conflict_handler:</b> * 类型:字符串 * 默认值:error * 描述: 解决冲突选项的策略 * 可选值:[ ] <b style="color:#808080;">add_help:</b> * 类型:布尔 * 默认值:无 * 描述: 为解析器添加一个 -h/--help 选项 * 可选值:[ ] <b style="color:#808080;">allow_abbrev:</b> * 类型:布尔 * 默认值:False * 描述: 是否允许识别参数缩写 * 可选值:[ ] <br/> ### 示例内容 <span style="color:red">1. 举例说明</span> ``` parser = argparse.ArgumentParser(description='Process some integers.') ``` <span style="color:red">2. fromfile_prefix_chars使用方式</span> ``` >>> with open('args.txt', 'w') as fp: ... fp.write('-f\nbar') >>> parser = argparse.ArgumentParser(fromfile_prefix_chars='@') >>> parser.add_argument('-f') >>> parser.parse_args(['-f', 'foo', '@args.txt']) Namespace(f='bar') ``` <br/> # <span style="color:#619BE4">add_argument()</span> ***** 添加操作参数 <br/> ### 参数说明 <b style="color:#808080;">name | flags:</b> * 类型:字符串 * 默认值:无 * 描述: 一个命名或者一个选项字符串的列表,例如 foo 或 -f, -\-foo * 可选值:[ ] <b style="color:#808080;">type:</b> * 类型:obj * 默认值:无 * 描述: 命令行参数应当被转换成的类型 * 可选值:[ ] <b style="color:#808080;">const:</b> * 类型:字符串 * 默认值:无 * 描述: 被一些 action 和 nargs 选择所需求的常数 * 可选值:[ ] <b style="color:#808080;">default:</b> * 类型:字符串 * 默认值:无 * 描述: 当参数未在命令行中出现时使用的值 * 可选值:[ ] <b style="color:#808080;">action:</b> * 类型:字符串 * 默认值:store * 描述: 当参数在命令行中出现时使用的动作基本类型 * 可选值:[ count | help | extend ] ![action](https://img.kancloud.cn/0c/4f/0c4f50687635c66f62caa227c5a11818_705x1265.png) <br/> <b style="color:#808080;">nargs:</b> * 类型:字符串 * 默认值:无 * 描述: 命令行参数应当处理的数目 * 可选值:[ argarse.REMAINDER ] ![nargs](https://img.kancloud.cn/ea/5b/ea5bec2487919f64146d853ff0a48e09_717x1235.png) <br/> <b style="color:#808080;">help:</b> * 类型:字符串 * 默认值:无 * 描述: 一个此选项作用的简单描述 * 可选值:[ ] <b style="color:#808080;">metavar:</b> * 类型:列表或字符串 * 默认值:无 * 描述: 打印帮助时提示的格式,可选参数的占位名称 * 可选值:[ ] <b style="color:#808080;">dest:</b> * 类型:字符串 * 默认值:无 * 描述: 指定被添加到 parse_args() 所返回对象上的属性名 * 可选值:[ ] <b style="color:#808080;">choices:</b> * 类型:列表 * 默认值:无 * 描述: 可用的参数的容器 * 可选值:[ ] <b style="color:#808080;">required:</b> * 类型:布尔 * 默认值:无 * 描述: 此命令行选项是否可省略 * 可选值:[ ] <br/> ### 示例内容 <span style="color:red">1. 举例说明</span> ``` # 直接输入参数,必须的位置参数 parser.add_argument("echo") # 操作符号参数,可选参数 parser.add_argument("-SV", "--set_version", help="set version", action="store_true", default='1') parser.add_argument("-I", "--number", type=int, help="get number", choices=[0, 1, 2]) ``` <br/> # <span style="color:#619BE4">add_subparsers()</span> ***** 添加子命令 <br/> ### 返回类型 ``` _SubParsersAction ``` <br/> ### 参数说明 <b style="color:#808080;">title:</b> * 类型:字符串 * 默认值:无 * 描述: 帮助输出中子解析器组的标题 * 可选值:[ ] <b style="color:#808080;">description:</b> * 类型:字符串 * 默认值:无 * 描述: 帮助输出中子解析器组的描述 * 可选值:[ ] <b style="color:#808080;">prog:</b> * 类型:字符串 * 默认值:无 * 描述: 用法信息将与子命令帮助一起显示 * 可选值:[ ] <b style="color:#808080;">parser_class:</b> * 类型:Parser * 默认值:无 * 描述: 用于创建子解析器实例的类 * 可选值:[ ] <b style="color:#808080;">action:</b> * 类型:字符串 * 默认值:无 * 描述: 默认执行动作 * 可选值:[ ] <b style="color:#808080;">dest:</b> * 类型:字符串 * 默认值:无 * 描述: 属性名 * 可选值:[ ] <b style="color:#808080;">required:</b> * 类型:布尔 * 默认值:无 * 描述: 是否必须 * 可选值:[ ] <b style="color:#808080;">help:</b> * 类型:字符串 * 默认值:无 * 描述: 一个此选项作用的简单描述 * 可选值:[ ] <b style="color:#808080;">metavar:</b> * 类型:列表或字符串 * 默认值:无 * 描述: 打印帮助时提示的格式 * 可选值:[ ] <br/> ### 示例内容 <span style="color:red">1. 举例说明</span> ``` import argparse def install_callback(path): print("install", path) parser = argparse.ArgumentParser(prog='PROG') subparsers = parser.add_subparsers(help='sub-command help') # 添加子命令 add parser_a = subparsers.add_parser('add', help='add help') parser_a.add_argument('-x', type=int, help='x value') parser_a.add_argument('-y', type=int, help='y value') # 添加子命令 sub parser_s = subparsers.add_parser('sub', help='sub help') parser_s.add_argument('-x', type=int, help='x value') parser_s.add_argument('-y', type=int, help='y value') install = subparsers.add_parser("install") install.set_defaults(cb=install_callback) install.add_argument("path") args = parser.parse_args(["install", "hardoor"]) args.cb(args.path) ``` <br/> # <span style="color:#619BE4">add_argument_group()</span> ***** 仅仅是概念上的分组,获取时候并不能安装组名获取 <br/> ### 参数说明 <b style="color:#808080;">title:</b> * 类型:字符串 * 默认值:无 * 描述: 组名 * 可选值:[ ] <b style="color:#808080;">description:</b> * 类型:字符串 * 默认值:无 * 描述: 描述作用的内容 * 可选值:[ ] <br/> ### 示例内容 <span style="color:red">1. 举例说明</span> ``` >>> parser = argparse.ArgumentParser(prog='PROG', add_help=False) >>> group = parser.add_argument_group('group') >>> group.add_argument('--foo', help='foo help') >>> group.add_argument('bar', help='bar help') >>> parser.print_help() usage: PROG [--foo FOO] bar group: bar bar help --foo FOO foo help ``` <br/> # <span style="color:#619BE4">add_mutually_exclusive_group()</span> ***** 添加互斥操作参数组 <br/> ### 示例内容 <span style="color:red">1. 举例说明</span> ``` # 添加操作参数 group = parser.add_mutually_exclusive_group() # 互斥参数组 group.add_argument("-v", "--verbose", action="store_true") group.add_argument("-q", "--quiet", action="store_true") ``` <br/> # <span style="color:#619BE4">set_defaults()</span> ***** 设置默认属性值 <br/> ### 示例内容 <span style="color:red">1. 举例说明</span> ``` parser = argparse.ArgumentParser() parser.add_argument('foo', type=int) parser.set_defaults(bar=42, baz='badger') parser.parse_args(['736']) 输出结果: Namespace(bar=42, baz='badger', foo=736) ``` <br/> # <span style="color:#619BE4">get_default()</span> ***** 获取默认属性值 <br/> ### 示例内容 <span style="color:red">1. 举例说明</span> ``` parser = argparse.ArgumentParser() parser.add_argument('--foo', default='badger') parser.get_default('foo') 输出结果: 'badger' ``` <br/> # <span style="color:#619BE4">format_usage()</span> ***** 定义usage信息格式 <br/> # <span style="color:#619BE4">format_help()</span> ***** 定义help信息格式 <br/> # <span style="color:#619BE4">print_help()</span> ***** 打印帮助信息 <br/> # <span style="color:#619BE4">print_usage()</span> ***** 打印有关应如何在命令行上调用ArgumentParser的简要说明 <br/> # <span style="color:#619BE4">exit()</span> ***** 此方法将终结程序,退出时附带指定的 status,并且如果给出了 message 则会在退出前将其打印输出 <br/> # <span style="color:#619BE4">error()</span> ***** 此方法将向标准错误打印包括 message 的用法消息并附带状态码 2 终结程序 <br/> # <span style="color:#619BE4">parse_known_args()</span> ***** 前缀解析,使用该解析模式产生额外参数会加入一个额外列表而不会报错 <br/> # <span style="color:#619BE4">parse_args()</span> ***** 解析参数内容,并返回 <br/> ### 参数说明 <b style="color:#808080;">args:</b> * 类型:字符串 * 默认值:sys.argv * 描述:要解析的字符串列表 * 可选值:[ ] <b style="color:#808080;">namespace:</b> * 类型:namespace * 默认值:store * 描述: 带有属性的对象。默认值为一个新的空命名空间对象。 * 可选值:[ ] <br/> ### 示例内容 <span style="color:red">1. 举例说明</span> ``` content = parser.parse_args() 获取解析内容,如--number的内容 print(content.number) ``` <br/> # <span style="color:#619BE4">parse_known_intermixed_args()</span> ***** 混杂解析已知参数 <br/> # <span style="color:#619BE4">parse_intermixed_args()</span> ***** 混杂解析 <br/> # <b style="color:#4F4F4F;">argparse.FileType</b> <br/> # <span style="color:#619BE4">[new]-FileType()</span> ***** FileType对象 <br/> ### 示例内容 <span style="color:red">1. 举例说明</span> ``` parser.add_argument('--raw', type=argparse.FileType('wb', 0)) parser.add_argument('out', type=argparse.FileType('w', encoding='UTF-8')) parser.parse_args(['--raw', 'raw.dat', 'file.txt']) ``` <br/> # <b style="color:#4F4F4F;">argparse.RawDescriptionHelpFormatter</b> <br/> # <span style="color:#619BE4">[new]-RawDescriptionHelpFormatter()</span> ***** 可选格式风格,在正文的描述和展示上给与了更多的控制 <br/> # <b style="color:#4F4F4F;">argparse.RawTextHelpFormatter</b> <br/> # <span style="color:#619BE4">[new]-RawTextHelpFormatter()</span> ***** 可选格式风格,在正文的描述和展示上给与了更多的控制 <br/> # <b style="color:#4F4F4F;">argparse.ArgumentDefaultsHelpFormatter</b> <br/> # <span style="color:#619BE4">[new]-ArgumentDefaultsHelpFormatter()</span> ***** 可选格式风格,自动添加默认的值的信息到每一个帮助信息的参数中 <br/> # <b style="color:#4F4F4F;">argparse.MetavarTypeHelpFormatter</b> <br/> # <span style="color:#619BE4">[new]-MetavarTypeHelpFormatter()</span> ***** 可选格式风格,为它的值在每一个参数中使用 type 的参数名当作它的显示名 <br/>