文章目录
- 简介
- argparse标准库的核心功能介绍
- Python代码示例
- 参考
简介
argparse
模块是Python标准库中的一个模块,用于处理命令行参数解析。它的主要作用是帮助开发者创建命令行界面,允许用户指定运行脚本时的参数,从而定制脚本的行为。本篇博客是博主自己的学习心得,简要介绍了argparse
模块的基本使用,并提供了相关的Python代码示例以供参考。
argparse标准库的核心功能介绍
argparse
模块的使用规范一般包含以下三个步骤:
- 实例化一个
argparse.ArgumentParser
对象; - 调用
ArgumentParser
的类方法add_argument()
添加位置参数【pisition argment】或者可选参数【option argment】; - 调用
ArgumentParser
的类方法parse_args()
解析参数。
以下总结了Python标准库中argparse
模块中argparse.ArgumentParser()
、ArgumentParser.add_argument()
以及ArgumentParser.parse_args()
的作用和用法:
类/方法 | 作用和用法 |
---|---|
argparse.ArgumentParser() | 创建命令行解析器对象。用于定义和管理命令行参数,生成用户友好的帮助文档,并解析用户提供的参数。 |
ArgumentParser.add_argument() | 用于在ArgumentParser 对象中定义和配置命令行参数,包括位置参数和选项参数的名称、帮助文档、默认值等。 |
ArgumentParser.parse_args() | 解析用户在命令行中提供的参数,并返回一个命名空间对象,其中包含了用户提供的参数的值。 |
以下是 argparse.ArgumentParser()
中常用参数的作用和说明:
参数 | 作用和说明 |
---|---|
prog | 程序的名称,通常自动从 sys.argv[0] 获取,也可以手动指定。 |
usage | 程序的使用信息,通常自动从参数定义中生成。 |
description | 程序的描述信息,通常用于生成帮助文档。 |
epilog | 帮助文档的结尾信息。 |
formatter_class | 帮助文档格式化类,默认为 argparse.HelpFormatter 。 |
prefix_chars | 选项参数前缀字符,默认为 '-' 。 |
fromfile_prefix_chars | 指定读取参数值的文件的前缀字符,默认为 None 。 |
argument_default | 参数的默认值,通常为 None 。 |
conflict_handler | 用于处理参数冲突的函数,默认为 'error' 。 |
add_help | 是否自动添加 -h 和 --help 选项用于显示帮助信息,默认为 True 。 |
parents | 一个 ArgumentParser 对象的列表,用于包含其他解析器的参数。 |
以下是 add_argument()
方法中常用参数的作用和说明:
参数 | 作用和说明 |
---|---|
*name_or_flags | 参数的名称或选项标志。通常,位置参数使用名称,选项参数使用标志。 |
action | 指定参数的行为。【‘store’, ‘store_const’, ‘store_true’, ‘append’, ‘append_const’, ‘count’, ‘help’, ‘version’】 |
nargs | 参数的个数,可以是固定值,如 1 ,或 * 表示零个或多个,或 + 表示至少一个。 |
const | 一个常数值,用于与参数的 action 一起使用,如 store_const 。 |
default | 参数的默认值,如果用户未提供参数,则使用默认值。 |
type | 参数的类型,如 int 、float 、str 等。 |
choices | 限制参数的取值范围,可以是一个列表或元组。 |
required | 指定参数是否必须提供,通常是 True 或 False 。 |
help | 参数的帮助文档,将在用户请求帮助时显示。 |
metavar | 在帮助文档中显示参数的占位符,用于描述参数的值。 |
dest | 指定结果命名空间中使用的属性名称 |
注意:
parse_args()
解析后将返回一个存储有add_argument()
添加的所有参数的argparse.Namespace
类示例,通过读取这个类示例的属性,我们就可以得到相关的参数和值。- add_argument()方法会自动添加一组默认参数(
--help
和-h
),用户不能再次通过add_argument()方法添加这组参数,否则会报错。错误信息如下:argparse.ArgumentError: argument -h/--help: conflicting option strings: -h, --help
。
Python代码示例
下方程序将从终端接受一个或者一系列整数并生成总和或最大值
import argparse
parser = argparse.ArgumentParser(description='Process some integers.')
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)')
args = parser.parse_args()
print(args.accumulate(args.integers))
参考
- Python文档:Argparse Tutorial
- Python文档:argparse — Parser for command-line options, arguments and sub-commands
收集整理和创作不易, 若有帮助🉑, 请帮忙点赞
👍➕收藏
❤️, 谢谢!✨✨🚀🚀