文章目录
- 简介
- 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
收集整理和创作不易, 若有帮助🉑, 请帮忙点赞👍➕收藏❤️, 谢谢!✨✨🚀🚀

![2023年中国城市交通数智化发展趋势分析:城市交通数智化渗透率将达到31.0% [图]](https://img-blog.csdnimg.cn/img_convert/796be2db8531ca265e1d5bfb3c8f26ce.png)

















