介绍argparse的使用【Python标准库】

简介

argparse 模块是Python标准库中的一个模块,用于处理命令行参数解析。它的主要作用是帮助开发者创建命令行界面,允许用户指定运行脚本时的参数,从而定制脚本的行为。本篇博客是博主自己的学习心得,简要介绍了argparse 模块的基本使用,并提供了相关的Python代码示例以供参考。

argparse标准库的核心功能介绍

argparse 模块的使用规范一般包含以下三个步骤:

  1. 实例化一个argparse.ArgumentParser对象;
  2. 调用ArgumentParser的类方法add_argument()添加位置参数【pisition argment】或者可选参数【option argment】;
  3. 调用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参数的类型,如 intfloatstr 等。
choices限制参数的取值范围,可以是一个列表或元组。
required指定参数是否必须提供,通常是 TrueFalse
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))

在这里插入图片描述

参考

  1. Python文档:Argparse Tutorial
  2. Python文档:argparse — Parser for command-line options, arguments and sub-commands

收集整理和创作不易, 若有帮助🉑, 请帮忙点赞👍➕收藏❤️, 谢谢!✨✨🚀🚀

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值