导入包
import argparse
import argparse # 导入包
parser = argparse.ArgumentParser() # 构造解析器对象
parser.add_argument("echo") # 添加属性
args = parser.parse_args() # 解析参数
print(args.echo) # 获取输入的参数
class 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])
usage - 描述程序用法的字符串(默认值:从添加到解析器的参数生成)
description - 参数help之前显示的文本(默认值:none)
epilog - 参数help后显示的文本(默认值:none)
parents - ArgumentParser还应包含其参数的对象列表(相当于继承其他解析器的参数,不能覆盖重新,父解析器指定add_help=False,防止help参数冲突)
formatter_class - 用于自定义帮助输出的类:
prefix_chars - 前缀可选参数的字符集(默认值:’ - ‘),例如:prefix_chars=’-+’
fromfile_prefix_chars -特定符号(默认值:None),参数中此特定符号加文件名表示读取该文件的内容,作为参数.文件的每行代表一个参数,顺序表示在命令行中的顺序
argument_default -为参数的全局默认值(默认值:None)
conflict_handler - 解决冲突选项的策略(通常是不必要的),conflict_handler=’resolve’
add_help -添加-h/–help选项解析器(默认值:True)
allow_abbrev - 如果缩写是明确的,则允许缩写长选项。(默认值:True)
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 - 某些操作和nargs选择所需的常量值。
default - 如果命令行中不存在参数,则生成的值。
type - 应转换命令行参数的类型:
choices - 参数允许值的容器。
required - 是否可以省略命令行选项(仅限可选参数)。
help - 对参数的作用的简要描述。
metavar - 用法消息中参数的显示名称。
dest - 要添加到返回的对象的属性的名称
class argparse.Action(option_strings,dest,nargs = None,const = None,default = None,type = None,choices = None,required = False,help = None,metavar = None )
ArgumentParser.parse_args(args = None,namespace = None ):将参数字符串转换为对象并将其指定为命名空间的属性。返回填充的命名空间
ArgumentParser.add_subparsers([ title ] [,description ] [,prog ] [,parser_class ] [,action ] [,option_string ] [,dest ] [,required ] [,help ] [,metavar ] )
:创建子命令
title - 帮助输出中的子解析器组的标题; 默认情况下为“subcommands”(如果提供了description),否则使用title作为位置参数
description - 默认情况下,帮助输出中的子解析器组的描述 None
prog - 将使用子命令帮助显示的使用信息,默认情况下,程序的名称和subparser参数之前的任何位置参数
parser_class - 将用于创建子解析器实例的类,默认情况下是当前解析器的类(例如ArgumentParser)
action - 在命令行遇到此参数时要采取的基本操作类型
dest - 将存储子命令名称的属性的名称; 默认情况下None,不存储任何值
required - 默认情况下是否必须提供子命令 False。
help - 默认情况下,帮助输出中的子解析器组的帮助None
metavar - 在帮助中显示可用子命令的字符串; 默认情况下它是,None并以{cmd1,cmd2,..}形式显示子命令
class argparse.FileType(mode ='r',bufsize = -1,encoding = None,errors = None )
:创建一个可以传递给类型参数的对象ArgumentParser.add_argument()。具有 FileType对象作为其类型的参数将打开命令行参数作为具有所请求的模式,缓冲区大小,编码和错误处理的文件
ArgumentParser.add_argument_group(title = None,description = None )
:返回一个参数组对象,该对象和ArgumentParser对象类似,选项分组
>>> parser = argparse.ArgumentParser(prog='PROG', add_help=False)
>>> group = parser.add_argument_group('group')
>>> group.add_argument('--foo', help='foo help')
ArgumentParser.add_mutually_exclusive_group(required=False)
:创建一个互斥的组,该对象和ArgumentParser对象类似
>>> group = parser.add_mutually_exclusive_group()
>>> group.add_argument('--foo', action='store_true')
>>> group.add_argument('--bar', action='store_false')
ArgumentParser.set_defaults(** kwargs )
:添加属性及值
>>> parser.add_argument('foo', type=int)
>>> parser.set_defaults(bar=42, baz='badger')
ArgumentParser.get_default(dest )
:获取命名空间属性的默认值
>>> parser.add_argument('--foo', default='badger')
>>> parser.get_default('foo')
[官方教程翻译]https://blog.ixxoo.me/argparse.html
[官方文档]https://docs.python.org/3/library/argparse.html#argparse.ArgumentParser.add_argument