python argsparse_python中的argsparse()函数

argsparse是一个用于解析和验证命令行参数的接口。默认将所有参数值都处理为字符串,可以用type=参数转换。

运用argsparse()函数:

1、创建一个解析器

使用 argsparse 的第一步是创建一个 ArgumentParser 对象:

>>> parser = argparse.ArgumentParser(description='Process some integers.')

2、添加参数

给一个 ArgumentParser 添加程序参数信息是通过调用 add_argument() 方法完成的。通常,这些调用指定 ArgumentParser 如何获取命令行字符串并将其转换为对象。这些信息在 parse_args() 调用时被存储和使用。例如:

>>> parser.add_argument('integers', metavar='N', type=int, nargs='+',

...                     help='an integer for the accumulator')

>>> parser.add_argument('--sum', dest='accumulate', action='store_const',

...                     const=sum, default=max,

...                     help='sum the integers (default: find the max)')

3、解析参数

ArgumentParser 通过 parse_args() 方法解析参数。它将检查命令行,把每个参数转换为适当的类型然后调用相应的操作。在大多数情况下,这意味着一个简单的 Namespace 对象将从命令行参数中解析出的属性构建:

>>> parser.parse_args(['--sum', '7', '-1', '42'])

Namespace(accumulate=, integers=[7, -1, 42])

ArgumentParser 对象

创建一个新的 ArgumentParser 对象。所有的参数都应当作为关键字参数传入。每个参数在下面都有它更详细的描述,但简而言之,它们是:

• 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)

some tips:参数简写

>>>parser.add_argument("-b","--bool",action="store_true")

这样,在程序内部我们依旧使用args.bool,但是在命令行当中我们只需要多写一个“-b”就好了。可变参数表:nargs参数的使用

综合小例子:

>>> parser = argparse.ArgumentParser(description='my_first_blog')

>>>parse.add_argument('-b',

'--at_least_one',

narg='+',

dest='all',

default=[2019],

type=int,

action='',

choice=test_sets.keys()

)

>>>options = parse_args()

>>>print('{ my first  value of argsparse is {}}'.farmat(option.all[0]))

解释:外部输入参数短命令-b;外部输入包含多个字符的长命令--at_least_one;以提供的dest参数为名称(namespace)来保存这个值,可用内部命令args.all访问这个值;参数至少一个,默认设置为[2019]的list结构(因为参数不止一个),类型为int型,只能输入choice中的参数;action为参数动作。

官方API:https://docs.python.org/zh-cn/3.7/library/argparse.html?highlight=argparse#module-argparse

引用博客部分内容:https://ganler.github.io/2018/07/18/argsparse-python%E5%92%8C%E5%91%BD%E4%BB%A4%E8%A1%8C%E4%B9%8B%E9%97%B4%E7%9A%84%E4%BA%A4%E4%BA%92/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值