详解Python中的add_argument函数

一、参数解析

Python中的 argparse 模块是一个命令行解析工具。它可以用来解析命令行参数,并生成帮助文档。在 argparse 中,add_argument函数是最核心的部分。它负责从命令行指定的参数中解析出参数值。add_argument函数主要包括以下几个方面:

二、add_argument参数窗口

add_argument() 函数定义了命令行选项,如何解析命令行参数以及如何产生帮助信息。下面是 add_argument 中的参数窗口及其说明:

parser.add_argument(name or flags...[, action][, nargs][, const][, default][, type][, choices][, required][, help][, metavar][, dest])

1. name or flags

命令行参数的名字或者选项,如 foo 或者 -f, –foo。Positional arguments 和 Optional arguments 中的参数具体写法:

  • positional argument
  • parser.add_argument("pos_arg", help="positional arg help")
    
  • optional argument
  • parser.add_argument("-o", "--optional_arg", help="optional arg help")
    

2. action

在参数输入之后的动作,默认为 store。其他可选参数有:

  • store_true, store_false:如果设置了这个值,则存储 True 或 False。
  • append:将遇到每个参数的值依次存储在一个列表中。
  • append_const:将 const 值附加到列表中。
  • count:统计在命令行中出现的次数。

3. nargs

命令行参数需要的值数量。可选参数:

  • nargs=N,表示要获取 N 个值,如 “script.py arg1 arg2 … argN”,这里 nargs=3。
  • nargs=?,表示要获取 0 或 1 个值。
  • nargs=’*’, 表示获取 0 或多个值。(这个是可以省略的)
  • nargs=’+’,表示获取 1 或多个值。

4. const

用于一些 action 和 nargs 参数的常量值。默认是 None。

5. default

在命令行没有指定参数时,默认参数的值。

6. type

命令行参数转换为的类型。默认是 None。

7. choices

命令行参数可选的值列表。

8. required

命令行参数是否必需。默认是 False。

9. help

参数描述信息。

10. metavar

在使用帮助文档时,参数的展示名称。意思就是输出的时候,以什么字样输出

11. dest

在使用 parse_args() 解析参数时,参数的名称,默认是 None。

三、add_argument_resolvers

用于自定义解析参数的选项,它允许将参数解析器注册到ArgParser实例中,以添加或修改参数解析的逻辑层。add_argument_resolvers()期望一个可迭代对象作为参数,其中每个元素都是一个解析器。以下示例演示了如何使用 add_argument_resolvers() 来注册一个检查文件是否存在的解析器:

import argparse
import os

class FileExistAction(argparse.Action):
    def __call__(self, parser, namespace, values, option_string=None):
        if not os.path.exists(values):
            parser.error(f"file '{values}' does not exist")
        setattr(namespace, self.dest, values)

parser = argparse.ArgumentParser()
parser.add_argument('--input', action=FileExistAction, help='input file')

args = parser.parse_args()

四、add_arguments函数

add_arguments是add_argument的变形,它迭代着接收 argument groups 并一次性将它们添加到 ArgumentParser 对象中。例如:

parser = argparse.ArgumentParser()

group = parser.add_argument_group('Group 1')
group.add_argument(...)

group = parser.add_argument_group('Group 2')
group.add_argument(...)

五、结尾

以上就是Python中 add_argument 函数的详解。在 argparse 模块中,add_argument函数是实现命令行解析工具的核心部分,了解其参数和使用方法对命令行应用开发非常重要。

原创文章,作者:DJEHW,如若转载,请注明出处:https://www.506064.com/n/313343.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
DJEHWDJEHW
上一篇 2025-01-07 09:43
下一篇 2025-01-07 09:43

相关推荐

  • Python周杰伦代码用法介绍

    本文将从多个方面对Python周杰伦代码进行详细的阐述。 一、代码介绍 from urllib.request import urlopen from bs4 import Bea…

    编程 2025-04-29
  • 如何查看Anaconda中Python路径

    对Anaconda中Python路径即conda环境的查看进行详细的阐述。 一、使用命令行查看 1、在Windows系统中,可以使用命令提示符(cmd)或者Anaconda Pro…

    编程 2025-04-29
  • Python计算阳历日期对应周几

    本文介绍如何通过Python计算任意阳历日期对应周几。 一、获取日期 获取日期可以通过Python内置的模块datetime实现,示例代码如下: from datetime imp…

    编程 2025-04-29
  • Python中引入上一级目录中函数

    Python中经常需要调用其他文件夹中的模块或函数,其中一个常见的操作是引入上一级目录中的函数。在此,我们将从多个角度详细解释如何在Python中引入上一级目录的函数。 一、加入环…

    编程 2025-04-29
  • Python列表中负数的个数

    Python列表是一个有序的集合,可以存储多个不同类型的元素。而负数是指小于0的整数。在Python列表中,我们想要找到负数的个数,可以通过以下几个方面进行实现。 一、使用循环遍历…

    编程 2025-04-29
  • Python字典去重复工具

    使用Python语言编写字典去重复工具,可帮助用户快速去重复。 一、字典去重复工具的需求 在使用Python编写程序时,我们经常需要处理数据文件,其中包含了大量的重复数据。为了方便…

    编程 2025-04-29
  • Python程序需要编译才能执行

    Python 被广泛应用于数据分析、人工智能、科学计算等领域,它的灵活性和简单易学的性质使得越来越多的人喜欢使用 Python 进行编程。然而,在 Python 中程序执行的方式不…

    编程 2025-04-29
  • python强行终止程序快捷键

    本文将从多个方面对python强行终止程序快捷键进行详细阐述,并提供相应代码示例。 一、Ctrl+C快捷键 Ctrl+C快捷键是在终端中经常用来强行终止运行的程序。当你在终端中运行…

    编程 2025-04-29
  • Python清华镜像下载

    Python清华镜像是一个高质量的Python开发资源镜像站,提供了Python及其相关的开发工具、框架和文档的下载服务。本文将从以下几个方面对Python清华镜像下载进行详细的阐…

    编程 2025-04-29
  • 蝴蝶优化算法Python版

    蝴蝶优化算法是一种基于仿生学的优化算法,模仿自然界中的蝴蝶进行搜索。它可以应用于多个领域的优化问题,包括数学优化、工程问题、机器学习等。本文将从多个方面对蝴蝶优化算法Python版…

    编程 2025-04-29

发表回复

登录后才能评论