当前位置: 首页>前端>正文

python args撖寡情 python argparse.argumentparser

1、介绍

该argparse模块使编写用户友好的命令行界面变得容易,该程序定义所需的参数,argparese可以找出并介意出这些参数,当用户提供无效参数时,该模块还会自动生成帮助和使用情况并发出错误。
[官方文档]:https://docs.python.org/3/library/argparse.html

2、一个简单的例子

import argparse

parser = argparse.ArgumentParser()
parser.add_argument("integers")  
parser.add_argument("-n", "--num", type=int, help="输入数字")  
args = parser.parse_args()

print(args.integers)
print("num ={0}".format(args.num))
python test3.py 1111 --n 2222

输出:

1111
num =2222

3、详细介绍

1.1、创建解析器
使用的第一步argparse是创建一个 ArgumentParser对象:

parser = argparse.ArgumentParser()

该ArgumentParser对象将包含将命令行解析为Python数据类型所需的所有信息。

1.2 添加参数
ArgumentParser通过调用add_argument()方法来填充有关程序参数的信息。通常,这些调用说明ArgumentParser如何在命令行中获取字符串并将其转换为对象。该信息在parse_args()被调用时被存储和使用。例如:

parser.add_argument('--sum', dest='accumulate', action='store_const',
                   	 const=sum, default=max,
                 	 help='sum the integers (default: find the max)')

后来,调用parse_args()将返回一个对象有两个属性,integers和accumulate。该integers属性将是一个或多个int的列表,并且该accumulate属性将是sum()函数(如果–sum在命令行中指定)或max()函数(如果未在命令行中指定)。

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

>>>parser.parse_args(['--sum', '7', '-1', '42'])
Namespace(accumulate=<built-in function sum>, integers=[7, -1, 42])

在脚本中,parse_args()通常不会调用任何参数,并且ArgumentParser会自动从中确定命令行参数sys.argv。

2.1 ArgumentParser对象
类argparse.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, allow_abbrev=True)
创建一个新ArgumentParser对象。所有参数都应作为关键字参数传递。

  • PROG -程序的名称(默认:sys.argv[0])
  • usage -描述程序使用情况的字符串(默认值:从添加到解析器的参数生成)
  • description -在参数帮助前显示的文本(默认值:无)
  • epilog -在参数help之后显示的文本(默认值:无)
  • parents - ArgumentParser还应包含其参数的对象列表
  • formatter_class-用于定制帮助输出的类
  • prefix_chars-前缀可选参数的字符集(默认值:“-”)
  • fromfile_prefix_chars-该字符集的前缀文件从额外的参数应该读(默认值:None)
  • argument_default -为参数的全局默认值(默认值:None)
  • conflict_handler -解决冲突的可选内容的策略(通常是不必要的)
  • add_help -添加-h/–help选项解析器(默认值:True)
  • allow_abbrev-如果缩写是明确的,则允许缩写长选项。(默认值:True)

在版本3.5中进行了更改:添加了allow_abbrev参数。



https://www.xamrdz.com/web/27u1964505.html

相关文章: