目录
argparse是什么?
argparse
是 Python 标准库中用于处理命令行参数的模块。它允许你定义命令行参数、选项和子命令,并帮助用户通过命令行界面与你的程序进行交互。
argparse的用法
argparse模块有三个主要方法:
- ArgumentParser():用于创建命令行解析器对象;
- add_argument():用于给解析器添加命令行参数;
- parse_args():用于解析命令行的参数。
ArgumentParser()
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,
exit_on_error=True)
在创建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),该参数从Python3.5开始才有。在Python3.8之前的版本中,该参数还会禁用短旗标分组,例如 -vv 表示为 -v-v。
- exit_on_error - 决定当错误发生时是否让 ArgumentParser 附带错误信息退出。该参数在Python3.9版本中才有 (默认值: True)
add_argument()
用于定义你的命令行参数和选项。通俗地说,它就像是告诉 Python 解析器你的程序希望接受哪些用户提供的输入,并且如何处理这些输入,是用的最多的函数。
add_argument()
方法有多个参数:
1.name or flags
(名称或标志):
- 这是用于指定参数或选项名称的位置参数。它可以是一个字符串,表示位置参数的名称,也可以是一个包含一个或多个标志的列表。标志通常由短选项(例如
-f
)和长选项(例如--file
)组成,用于在命令行中指定参数
2.action
(操作):
- 定义参数在命令行中出现时的行为。常见的选项包括:
store
:默认操作,将参数值存储在一个变量中。store_const
:将一个常量值与参数相关联。store_true
和store_false
:用于布尔选项,分别将参数设置为True
或False。
append
:将参数值追加到一个列表中。count
:用于统计参数出现的次数。help
:用于显示帮助信息并退出。
3.default
(默认值):
- 指定参数的默认值,如果用户没有提供参数值,则使用默认值。
4.type
(类型):
- 指定参数的数据类型,例如
int
、float
或str
,用于确保用户提供的值是符合预期的数据类型。
5.choices
(选项):
- 指定参数允许的值的列表,用户提供的值必须在此列表中。
6.required
(必需):
- 指定参数是否是必需的。如果设置为
True
,用户必须提供此参数。
7.help
(帮助信息):
- 为参数提供描述性的帮助信息,当用户请求帮助信息时,这个文本将显示在屏幕上。
8.metavar
(元变量):
- 用于指定在帮助信息中显示参数的名称,通常用于更好的帮助信息呈现。
parse_args()
parse_args() 方法用来解析参数。
它将检查命令行,把每个参数转换为适当的类型然后调用相应的操作。
这个方法返回的是一个Namespace对象。
补充:
在Python中,Namespace对象是一个用来存储变量的容器,这些变量可以通过名称访问。你可以将Namespace对象想象成一个字典,其中键是变量的名称,值是变量的值
示例:
import argparse
ap = argparse.ArgumentParser()
ap.add_argument('-i','--image',required=True,help="输入图像的路径")
ap.add_argument('-t','--template',required=True,help='OCR-A模板图像的路径')
my_args = ap.parse_args()
print(my_args)
运行结果: