首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在Python3中使用argparse从已有的程序创建子解析器?

在Python3中,可以使用argparse模块来创建子解析器。argparse是Python标准库中的一个命令行解析器,它可以帮助我们解析命令行参数,并生成帮助信息。

要从已有的程序创建子解析器,可以按照以下步骤进行操作:

  1. 导入argparse模块:
代码语言:txt
复制
import argparse
  1. 创建ArgumentParser对象:
代码语言:txt
复制
parser = argparse.ArgumentParser()
  1. 添加父级解析器的参数:
代码语言:txt
复制
parser.add_argument('--parent_arg', help='Parent argument')
  1. 创建子解析器:
代码语言:txt
复制
subparsers = parser.add_subparsers(title='Subcommands', dest='subcommand')
  1. 添加子解析器的参数:
代码语言:txt
复制
subparser = subparsers.add_parser('subcommand_name', help='Subcommand help')
subparser.add_argument('--sub_arg', help='Subcommand argument')
  1. 解析命令行参数:
代码语言:txt
复制
args = parser.parse_args()
  1. 根据解析结果执行相应的逻辑:
代码语言:txt
复制
if args.subcommand == 'subcommand_name':
    # 执行子解析器对应的逻辑
    subcommand_logic(args.sub_arg)
else:
    # 执行父级解析器对应的逻辑
    parent_logic(args.parent_arg)

通过以上步骤,我们就可以在Python3中使用argparse从已有的程序创建子解析器。argparse模块提供了丰富的功能,可以帮助我们处理各种命令行参数的情况。

推荐的腾讯云相关产品:腾讯云函数(云原生应用托管服务),腾讯云API网关(云原生API管理服务),腾讯云容器服务(云原生容器托管服务)。你可以通过访问腾讯云官网了解更多关于这些产品的详细信息和使用指南。

注意:本回答仅提供了使用argparse创建子解析器的基本步骤,并推荐了腾讯云相关产品作为示例,具体的实现和产品选择应根据实际需求进行。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Python 命令行之旅:深入 argparse(二)

前言 在上一篇“深入 argparse (一)”的文章,我们深入了解了 argparse 的包括参数动作和参数类别在内的基本功能,具备了编写一个简单命令行程序的能力。...本文将继续深入了解 argparse 的进阶玩法,一窥探其全貌,助力我们拥有实现复杂命令行程序的能力。 本系列文章默认使用 Python 3 作为解释器进行讲解。...若你仍在使用 Python 2,请注意两者之间语法和库的使用差异哦~ 帮助 自动生成帮助 当你在命令行程序中指定 -h 或 --help 参数时,都会输出帮助信息。...由于后续的解析器会自动生成帮助信息,这里的父解析器指定 add_help=False 以不自动生成帮助信息: # bash.py import argparse parser = argparse.ArgumentParser...在下面这个例子,我们支持 create 和 delete 两个子命令,用来创建或删除指定路径。

1.4K20

argparse------用于命令行选项、参数和命令的解析器

程序定义了它需要什么参数,argparse将找出如何sys.argv解析这些参数。argparse模块还自动生成帮助和使用消息,并在用户给程序提供无效参数时发出错误。...下面的部分将描述如何使用这些方法。prog默认情况下,ArgumentParser对象使用sys。以确定如何在帮助消息显示程序的名称。...description - 帮助输出解析器组的描述,默认情况下为None。 prog - 使用命令帮助将显示的使用信息,默认情况下程序的名称和解析器参数之前的任何位置参数。...parser_class - 用于创建解析器实例的类,默认情况下是当前解析器的类(例如ArgumentParser)。 action - 当在命令行遇到这个参数时要采取的基本操作类型。...当其中之一出现时,解析器的命令将出现在帮助输出的它们自己的组

6.8K20

Python 命令行之旅:初探 argparse

当你在程序定义需要哪些参数,argparse 便会 sys.argv 获取命令行输入进行解析,对正确或非法输入做出响应,也可以自动生成帮助信息和使用说明。...通过实例化 argparse.ArgumentParser,给定一些选填参数,我们就可以设置一个解析器: import argparse parser = argparse.ArgumentParser...Python 对象,: # 添加 nums 参数,在使用信息显示为 num # 其类型为 int,且支持输入多个,且至少需要提供一个 parser.add_argument('nums', metavar...) print(args) # 结果:Namespace(accumulate=, nums=[-1, 0, 1]) 业务逻辑 解析好命令行后,我们就可以解析结果获取每个参数的值...在下一篇文章,让我们来一起深入了解 argparse,感受它的魅力吧! ?

66920

【Python爬虫实操】 如何在任务中高效处理命令参数

2.使用argparse库处理命令行参数  Python标准库argparse模块提供了一个简单而强大的命令行参数解析器。...以下是一个使用argparse库处理命令行参数的示例:  ```python  import argparse  #创建一个解析器  parser=argparse.ArgumentParser(description...)  print(args.arg2)  ```  在上述示例,我们通过ArgumentParser类创建了一个解析器对象,然后使用add_argument方法定义了两个命令行参数。...此外,argparse库还支持命令,允许在一个主程序定义多个命令并分别处理它们的参数。  4.使用合适的帮助信息  对命令行程序来说,良好的帮助信息是非常重要的。...可以利用argparse库提供的各种特性,优化命令行参数的处理过程,提升程序的用户体验和性能。  本文介绍了如何在Python中高效处理命令行参数。

18560

Python 命令行之旅:初探 argparse

若你仍在使用 Python 2,请注意两者之间语法和库的使用差异哦~ ‍介绍 argparse 作为 Python 内置的标准库,提供了较为简单的方式来编写命令行接口。...当你在程序定义需要哪些参数,argparse 便会 sys.argv 获取命令行输入进行解析,对正确或非法输入做出响应,也可以自动生成帮助信息和使用说明。...通过实例化 argparse.ArgumentParser,给定一些选填参数,我们就可以设置一个解析器: import argparse parser = argparse.ArgumentParser...Python 对象,: # 添加 nums 参数,在使用信息显示为 num # 其类型为 int,且支持输入多个,且至少需要提供一个 parser.add_argument('nums', metavar...在下一篇文章,让我们来一起深入了解 argparse,感受它的魅力吧!

45610

Google 开源的 Python 命令行库:fire 实现 git 命令

作者:HelloGitHub-Prodesire 涉及的示例代码,同步更新到 HelloGitHub-Team 仓库 点击本文最下方的“阅读原文”即可获取 一、前言 在前面三篇介绍 fire 的文章...程序结构 程序结构上: 实例化 Git 对象,供全局使用 在 GitCli 类定义四个命令对应的实例方法 status、add、commit、push 则基本结构如下: import os import...五、实现 假定我们在 fire-git.py[2] 文件实现我们的 git 程序。 5.1 status 命令 status 命令不接受任何参数和选项,因此 status 方法无需任何入参。...对比 argparse、docopt 和 click 的实现版本,你会发现使用 fire 来实现是最简单的: 相较于 argparse解析器、参数类型什么的统统不需要关心 相较于 docopt,参数解析和命令调用处理也不需要关心...现在,你学会了四个特点各异的主流命令行解析库的使用了,再也不需要为命令行程序的实现而烦恼了。 什么,你为要使用哪一个库而发愁?

57320

Python 命令行之旅:使用 click 实现 git 命令

作者:HelloGitHub-Prodesire 涉及的示例代码,同步更新到 HelloGitHub-Team 仓库 点击本文最下方的“阅读原文”即可获取 一、前言 在前面五篇介绍 click 的文章...按照惯例,我们要像使用 argparse 和 docopt 一样使用 click 来实现 git 命令。...五、实现 假定我们在 click-git.py 文件实现我们的 git 程序。...对比 argparse 和 click 的实现版本,你会发现使用 click 来实现变得特定简单: 相较于 argparse解析器、参数类型什么的统统不需要关心 相较于 docopt,参数解析和命令调用处理也不需要关心...现在,你学会了三个命令行解析库的使用了。但你以为这就够了吗?click 已经够简单了吧,够直接了吧?但它仍然不是最简单的。

81220

python包合集-argparse

创建一个名为test.py的文件 # 导入 argparse 模块 import argparse # 创建一个argparse 的对象 parser = argparse.ArgumentParser...两个“--”的参数,例如:--name 他就相当于在程序,用来接收对对应指令值的变量,例如我们在控制台上输入 python3 test.py -n hou。...三、ArgumentParser参数   ArgumentParse是解析器对象,在创建一个解析器对象的时候,是有很多参数可以配置,下面就演示一下这些参数的使用   1、prog: 程序的名称(默认值:...,并且会覆盖原来的prog的显示   修改部分程序: # 创建一个argparse 的对象 parser = argparse.ArgumentParser(prog="testname", usage...,其对应的指令的值常量类型       注意3:使用action = append 是可以复制,其对应的值会将该指令对应的值放在一个数组       1.1 先来演示:使用action,保存布尔类型的指令的值

37510

Python 模块:argparse

创建一个解析器 使用 argparse 的第一步是创建一个 ArgumentParser 对象: >>> parser = argparse.ArgumentParser(description='Process...每个参数在下面都有它更详细的描述,但简而言之,它们是: prog - 程序的名称(默认:sys.argv[0]) usage - 描述程序用途的字符串(默认值:添加到解析器的参数生成) description...prog 默认情况下,ArgumentParser 对象使用 sys.argv[0] 来确定如何在帮助消息显示程序名称。这一默认值几乎总是可取的,因为它将使帮助消息与从命令行调用此程序的方式相匹配。...parents= 参数使用 ArgumentParser 对象的列表,它们那里收集所有的位置和可选的行为,然后将这写行为加到正在构建的 ArgumentParser 对象。...如果你在解析器之后改变父解析器是,这些改变不会反映在解析器上。 formatter_class ArgumentParser 对象允许通过指定备用格式化类来自定义帮助格式。

2.5K10

Python 命令行之旅:使用 argparse 实现 git 命令

本文将以我们日常工作中最常见的 git 命令为例,讲解如何使用 argparse 库来实现一个真正可用的命令行程序。 本系列文章默认使用 Python 3 作为解释器进行讲解。...argparse 要实现命令,那么之前介绍到的 嵌套解析器 必不可少 当用户键入命令时,命令所对应的解析器需要作出响应,那么需要用到解析器的 set_defaults 功能 针对 git add...实现 假定我们在 argparse-git.py[2] 文件实现我们的 git 程序。 构建解析器 我们需要构建一个父解析器,作为程序的根解析器程序名称指定为 git。...然后在上面添加解析器,为后续的命令的解析做准备: def cli(): """ git 命名程序入口 """ parser = argparse.ArgumentParser...比如,在本文示例程序,我们为每个子解析器定义了 handle,那么 args = parser.parse_args() 的 args 将具有 handle 属性,我们传入不同的命令,那么这个 handle

65720

在Python创建命令行界面的最佳方式

通过创建命令行界面(CLI),可以使程序功能强大并具有交互性。CLI允许您接受命令行参数(操作系统命令行中程序名称后面的信息),以便向程序添加其他特性,使代码易于使用和灵活。...根据程序的不同,这些参数可用于添加其他特性,查看帮助文档、指定输出文件或启用测试特性,这些特性在正常使用时可能会出现问题。...当用户运行这个程序时,它们被限制为一组定义的规则。例如,如果我想将输出记录到文本文件,该怎么办?作为一个用户,您可以创建一个命令行界面来提供这些问题的解决方案。 ?...作为程序员,您可以定义要接受的参数,而argparse将知道如何sys解析这些参数。当用户给程序提供无效参数时,Argparse还会自动生成帮助和使用消息,并输出错误。...首先,创建一个名为test_cl .py的新文件,导入模块并初始化一个新的解析器: import argparse parser = argparse.ArgumentParser() parser.parse_args

2.4K20

Python 命令行之旅:使用 docopt 实现 git 命令

整个程序的结构是怎样的? docopt 不同于使用 argparse 时需要考虑嵌套解析器、各类参数等问题,在使用 docopt 只需将我们要实现的 git 命令用接口描述先定义清楚即可。...程序结构 程序结构上,除了开头处定义接口描述外,其余和使用 argparse 实现 git 命令的结构是一样的: 命令行程序需要一个 cli 函数来作为统一的入口,它负责构建解析器,并解析命令行参数 我们还需要四个...五、实现 假定我们在 docopt-git.py[3] 文件实现我们的 git 程序。...对比 argparse 的实现版本,你会发现使用 docopt 来实现变得非常简单,解析器、参数类型什么的统统不需要关心!这可以说是 docopt 最大的优势了。...关于 docopt 的讲解将告一段落,回顾下 docopt 的三步曲,加上今天的内容,感觉它的使用方式还是比 argparse 简单不少的。 现在,你学会了两个命令行解析库的使用了。

38630

让你绅士般基于描述编写 Python 命令行工具的开源项目:docopt

作者:HelloGitHub-Prodesire 文中涉及的示例代码,同步更新到 HelloGitHub-Team 仓库 点击本文最下方的“阅读原文”即可获取 一、前言 在本系列前面四篇文章,我们介绍了...它无疑是强大的,但使用方式上略显麻烦。需要先设置解析器,再定义参数,再解析命令行,最后实现业务逻辑。 而今天要介绍的 docopt[1] 则是站在一个全新的视角来审视命令行。...若你仍在使用 Python 2,请注意两者之间语法和库的使用差异哦~ 二、介绍 docopt[2] 基于长久以来在帮助信息和手册描述程序接口的约定,其接口描述是形式化的帮助信息。...它能够根据命令行程序定义的接口描述,来自动生成解析器。...接口描述通常定义在一个模块的文档字符串,我们仍然以在 Python 命令行之旅:初探 argparse 的例子为例,讲解如何使用 docopt 来定义接口描述。

32720

argparse 的高级用法

argparse 的进击 argparse命令 argparse 也是支持命令的,而且命令也可有自己的命令。...这样我就实现了命令解析的解耦,与命令有关的参数在自己的类的 add_argument 添加就可以了。...argparse 是拿到 sys.argv 之后按顺序看,如果找到一个参数就把结果对应这个参数的值赋好,如果找到一个命令的名称则取得这个子命令的解析器 递归调用这个解析器去解析剩下的命令行参数。...也就是说如果没有匹配到这个子命令是不会执行任何该命令的相关动作,也不会把这个子命令的参数加入到解析器。 而相同层级的命令必然是互斥的,不可能存在同时匹配到多个子命令的情况。...比如 python cli.py greet goodbye 匹配到的是 greet 命令,而 goodbye 会被当作 greet 的参数在 greet 自己的解析器解析。

19640

Python argparse标准库快速入门

可以看到argparse标准库其实用起来很简单,分成三个步骤: 创建ArgumentParser对象 使用add_argument方法添加参数 使用parse_args方法接受并解析对象 下面我们就依次来看看这些步骤吧...argparse标准库就必然需要创建这个类的实例。...prog - 程序的名称(默认:sys.argv[0]),默认是Python程序的文件名 usage - 描述程序用途的字符串(默认值:添加到解析器的参数生成) description - 在参数帮助文档之前显示的文本...,和正则表达式里的概念差不多,后面的一个值会被读取,如果没有的话会default读入。 +,后面的多个值会被读取,如果没有会抛出异常。 ?,后面的多个值会被读取,没有值的话也可以。...parser。有些程序支持命令,这时候可以使用parser创建更复杂的parser。 FileType。更详细的设置文件参数的方法。 参数组。

86310

Google 开源的 Python 命令行库:初探 fire

作者:HelloGitHub-Prodesire 涉及的示例代码,同步更新到 HelloGitHub-Team 仓库 点击本文最下方的“阅读原文”即可获取 一、前言 在本系列前面所有文章,我们分别介绍了...argparse 是面向过程的,需要先设置解析器,再定义参数,再解析命令行,最后实现业务逻辑。docopt 先用声明式的语法定义出参数,再过程式地解析命令行和实现业务逻辑。...argparse、docopt 和 click 实现命令行程序的步骤: 对于 argparse 来说,要先设置解析器,再定义参数,再解析命令行,最后实现业务逻辑(四步) 对于 docopt 来说,要先定义定义接口描述...我们不妨考虑下 Python 的函数,函数是不是可以对应一个命令行程序,而函数的参数可以对应命令行程序的参数和选项呢?...再看看 Python 的类,一个类是不是可以对应一个命令行程序,而类的每个实例方法就可以对应命令,实例方法的参数就是对应命令的参数和选项。

49710

Python 基础(二十一):argparse 模块

简介 argparse 模块主要用于处理 Python 命令行参数和选项,程序定义好所需参数后,该模块会通过 sys.argv 解析出那些参数;除此之外,argparse 模块还会自动生成帮助和使用手册...使用 我们先来看一个简单示例: import argparse # 创建解析对象 parser = argparse.ArgumentParser() # 解析 parser.parse_args()...--help show this help message and exit 如果使用未定义的参数会报错,:执行命令 python test.py -a,执行结果: usage: test.py...fromfile_prefix_chars=None, argument_default=None, conflict_handler='error', add_help=True, allow_abbrev=True) 这个方法是用来创建解析器对象的...,看一下方法每一个参数的含义: prog:程序的名称(默认:sys.argv[0]) usage:描述程序用途的字符串(默认值:添加到解析器的参数生成) description:在参数帮助文档之前显示的文本

57520
领券