argparse 模块,用于方便地编写用户友好的命令行接口,可以自动生成帮助信息,用法信息和错误处理

1、模块对象

1.1 ArgumentParser 对象

1.1.1 初始化构建类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)

参数设置:
prog:程序的名字,默认为 sys.argv[0],即 py 文件名字
usage:一个描述程序的用法的字符串,默认包含所有加进去的参数
description:最常用的属性,简单描述程序的用处和用法,在 usage 和具体帮助之间显示,默认为 none
epilog:放在帮助后面的字符串,默认为 none
parents:一个 ArgumentParser 对象的列表,这些对象里的参数也会被包含进来,用于有许多共享的参数,类似继承,需要把这些父对象的 add_help 属性设为 False
formatter_class:设置控制帮助信息输出的类,默认会自动换行,有
      argparse.RawDescriptionHelpFormatter:不自动换行,怎么输入怎么输出
      argparse.RawTextHelpFormatter:保留所有空格,但会把多个连续换行合成为一个
      argparse.ArgumentDefaultsHelpFormatter:在帮助信息里加上默认值
prefix_chars:控制命令行命令前的符号,默认 ‘-‘,可以自定义
fromfile_prefix_chars:当程序所需参数较多时可以从文件读入,这时可以设置这个属性识别文件,在指定字符后的参数就视为文件打开读取参数,默认为 None
argument_default:参数的全局默认属性,默认为 None
conflict_handler:设置为‘resolve’可以覆盖相同名字的操作,否则会报错,一般不使用
add_help:添加 -h/--help 操作,默认 True

1.1.2 实例方法

add_argument(name or flags...[, action][, nargs][, const][, default][, type][, choices][, required][, help][, metavar][, dest]):
参数设置:
name or flags:如果添加可选参数,则在前面加上‘-’或是自定义的前缀字符(prefix_chars),否则认为是定位参数(positional)即必须的参数
action:设置此参数被调用时的操作,有'store','store_const','store_true','store_false','append','append_const','count','help','version',可以自定义
nargs:每个操作需要的参数个数,有 N,'?','*','+',argparse.REMAINDER
const:设置不从命令行读取但是后续操作需要的常数,默认为 none
default:设置可以不从命令行读取的默认值,默认为 none
type:转换命令行的字符串至指定格式,支持所有内置类型,还有文件操作 argparse.FileType('r,w'),所有自定义的以一个字符串为参数返回转换后的值的可调用对象都可以
choices:包含所有支持的参数,不在这个范围内会报错,可以控制输入
required:设置可选参数是否为必选,避免使用
help:设置帮助信息,支持格式化字符串,argparse.SUPPRESS 会在显示帮助时隐藏对应的操作
metavar:设置帮助信息里各个参数的别名
dest:设置命令行里获得的参数存放到哪个属性中

parse_args(args=None, namespace=None):
参数设置:
args:要解析的字符串列表,默认从 sys.argv 获得
namespace:存放获得的属性的一个对象

add_subparsers([title][, description][, prog][, parser_class][, action][, option_string][, dest][, help][, metavar]):通常不设置参数,返回一个有特定操作的对象
参数设置:
title:帮助中的名字
description:帮助中的描述
prog:使用信息
parser_class:指定从哪个父类中创建子对象
action、dest、help、metavar:同上

set_defaults(**kwargs):设置默认值
get_default(dest):获得 dest 的默认值
print_usage(file=None):输出 usage 信息
print_help(file=None):输出帮助信息