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

如何在argparse的帮助消息中包含所有子命令的帮助消息?

在argparse中,可以通过使用add_subparsers()方法来添加子命令,并且可以为每个子命令设置帮助消息。要在argparse的帮助消息中包含所有子命令的帮助消息,可以使用argparse.ArgumentDefaultsHelpFormatter类来自定义帮助消息的格式。

下面是一个示例代码,演示如何在argparse的帮助消息中包含所有子命令的帮助消息:

代码语言:txt
复制
import argparse

# 创建解析器
parser = argparse.ArgumentParser(formatter_class=argparse.ArgumentDefaultsHelpFormatter)

# 创建子命令解析器
subparsers = parser.add_subparsers(title='subcommands', dest='subcommand', metavar='<subcommand>')

# 子命令1
subparser1 = subparsers.add_parser('command1', help='This is command 1 help')
subparser1.add_argument('arg1', help='Argument 1')

# 子命令2
subparser2 = subparsers.add_parser('command2', help='This is command 2 help')
subparser2.add_argument('arg2', help='Argument 2')

# 获取所有子命令的帮助消息
subcommands_help = ''
for name, subparser in subparsers.choices.items():
    subcommands_help += f'\n{name}: {subparser.description}'

# 设置帮助消息
parser._positionals.title = 'Positional arguments'
parser._optionals.title = 'Optional arguments'
parser._subparsers.title = 'Subcommands'
parser._subparsers.help = subcommands_help

# 解析命令行参数
args = parser.parse_args()

# 打印帮助消息
parser.print_help()

运行以上代码,可以得到如下输出:

代码语言:txt
复制
usage: program.py [-h] <subcommand> ...

positional arguments:
  <subcommand>
    command1   This is command 1 help
    command2   This is command 2 help

optional arguments:
  -h, --help  show this help message and exit

在这个例子中,我们使用argparse.ArgumentParser创建了一个解析器,并使用add_subparsers()方法创建了子命令解析器。然后,我们为每个子命令添加了帮助消息。接下来,我们通过遍历子命令解析器的choices属性,获取所有子命令的帮助消息,并将其添加到主解析器的帮助消息中。最后,我们使用parser.print_help()打印帮助消息。

这样,argparse的帮助消息中就包含了所有子命令的帮助消息。

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

相关·内容

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

以确定如何在帮助消息显示程序名称。这个缺省值几乎总是可取,因为它将使帮助消息与在命令行上调用程序方式匹配。...description - 帮助输出解析器组描述,默认情况下为None。 prog - 使用命令帮助将显示使用信息,默认情况下程序名称和解析器参数之前任何位置参数。...help - 帮助输出解析器组帮助,默认为None。 metavar - 在帮助显示可用命令字符串;默认情况下,它是None,并以{cmd1, cmd2, ..}形式显示命令。...当其中之一出现时,解析器命令将出现在帮助输出它们自己。...这些解析器不支持所有argparse特性,如果使用不支持特性,就会引发异常。特别是解析器argparse。不支持同时包含选项和位置剩余组和互斥组。

7K20
  • Python argparse 模块作用,以及分享一个通用代码模板

    argparse 模块还会自动生成帮助和使用信息。如果用户传入无效参数,argparse 会显示错误消息帮助用户正确使用程序。...help:参数帮助信息。当用户请求帮助时,这个描述会显示在命令行用法字符串和各种参数帮助消息之间。编写清晰、简洁帮助信息对用户非常重要。 default:如果用户未提供某个参数,将使用默认值。...添加所有参数后,会调用 parser.parse_args() 来解析运行脚本时提供命令行参数,并将提取数据放入 argparse.Namespace 对象。...使用了内置函数 vars() 来处理前一步得到 argparse.Namespace 对象 args。vars() 函数返回对象 __dict__ 属性,这是一个包含了对象所有属性及其值字典。...它允许您定义各种选项、参数和命令,从而使您程序更具灵活性。您可以根据需要添加或修改选项,而无需更改源代码。 自动生成帮助和用法信息:argparse 能够自动生成帮助和用法消息文本。

    18900

    parser.add_argument()用法——命令行选项、参数和命令解析器

    argparse是一个Python模块:命令行选项、参数和命令解析器。...通过在程序定义好我们需要参数,然后 argparse 将会从 sys.argv 解析出这些参数。argparse 模块还会自动生成帮助和使用手册,并在用户给程序传入无效参数时报出错误信息。...(description='test') ArgumentParser 对象包含命令行解析成 Python 数据类型所需全部信息。...在帮助消息,这个描述会显示在命令行用法字符串和各种参数帮助消息之间。...help - 参数帮助信息,当指定为 argparse.SUPPRESS 时表示不显示该参数帮助信息. metavar - 在 usage 说明参数名称,对于必选参数默认就是参数名称,对于可选参数默认是全大写参数名称

    2.1K20

    python-argparse

    简单使用,详细方法及示例请参考python标准库 python获取命令行参数 获取参数 sys.argv sys.argv[0] 为程序名称,其后分别为参数,len(sys.argv)可得出所有参数个数...python标准库getopt, optparse, argparse都是专门处理命令行参数模块 getopt 是类似UNIX系统getopt这个C函数实现,可以处理长短配置项和参数。...声明式风格优点,又多了更丰富功能,所以是现阶段最好用参数处理标准库 docopt 是比前者更先进更易用命令行参数处理器,甚至不用写代码,只要编写类似argparse 输出帮助信息即可,因为其还不是标准库...,所以现在主要学习argparse argparse argparse 解析命令行选项,参数以及命令 argparse 可以帮助更方便写出用户友好命令行接口。...() 解析后返回名字,如不指定名字,则使用– 或者- 之后名字 parse_args() 默认参数来自sys.argv 返回一个包含解析后参数namespace 其他功能 命令命令之下包含又一层命令

    79710

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

    前言: 我们先给大家介绍什么是命令行界面(CLI): 命令行界面或命令语言解释器,也称为命令行用户界面、控制台用户界面和字符用户界面,是一种与计算机程序交互方式,用户以连续文本行形式向程序发出命令。...根据程序不同,这些参数可用于添加其他特性,查看帮助文档、指定输出文件或启用测试特性,这些特性在正常使用时可能会出现问题。...当用户运行这个程序时,它们被限制为一组定义规则。例如,如果我想将输出记录到文本文件,该怎么办?作为一个用户,您可以创建一个命令行界面来提供这些问题解决方案。 ?...处理错误情况:让用户确切地知道哪里出了问题 运行时状态:如果任务没有立即完成,您应该打印出当前进度 使用argparse读取参数: Argparse是一个用于解析命令行参数Python标准库模块。...作为程序员,您可以定义要接受参数,而argparse将知道如何从sys解析这些参数。当用户给程序提供无效参数时,Argparse还会自动生成帮助和使用消息,并输出错误。

    2.5K20

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

    本文将介绍如何在Python中高效处理命令行参数,帮助更好地利用Python进行开发。  1.了解命令行参数基本概念  命令行参数是在运行程序时由用户在命令输入参数。...使用argparse库可以轻松定义命令行参数类型、默认值、帮助信息等,并自动生成带有参数选项帮助文档。...比如可以设置参数互斥关系、分组关系、多个参数共享一个值等等。此外,argparse库还支持命令,允许在一个主程序定义多个命令并分别处理它们参数。  ...4.使用合适帮助信息  对命令行程序来说,良好帮助信息是非常重要argparse库能够帮助我们自动生成带有参数选项帮助文档,但仍需我们提供合适帮助信息。...本文介绍了如何在Python中高效处理命令行参数。通过使用argparse库,我们能够轻松定义和解析命令行参数,并提供合适帮助信息。

    20660

    使用命令行界面运行Python脚本

    我们还将稍微调整代码,定义三个变量,而不是硬编码程序所有值:PDF源文件、要提取页面,以及最终生成PDF,此设置将允许我们在任何PDF文件上使用该程序。...我们可以定义程序需要参数,argparse将找出如何从sys.argv解析这些参数。该库还自动生成帮助和用法消息。 首先,我们实例化ArgumentParser()对象。...从技术上讲,我们不需要这个if块,只需调用main(),代码仍然可以工作,但将其包含在代码是一种很好做法。 使用命令行界面运行Python脚本 实际测试一下这个程序。...应该会看到与下面类似的输出,并且在程序运行后,在同一文件夹应该会有一个名为“3_pages.PDF”PDF文件。 图3 argparse优点之一是它自动生成帮助消息。...在命令,键入pdf_cli_eg.py -h。这将显示帮助消息,包括如何使用程序CLI以及参数说明。 图4

    2.8K30

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

    简介 argparse 模块主要用于处理 Python 命令行参数和选项,程序定义好所需参数后,该模块会通过 sys.argv 解析出那些参数;除此之外,argparse 模块还会自动生成帮助和使用手册...使用 argparse 模块,我们可以轻松编写出用户友好命令行接口。 2....看一下方法每一个参数含义: prog:程序名称(默认:sys.argv[0]) usage:描述程序用途字符串(默认值:从添加到解析器参数生成) description:在参数帮助文档之前显示文本...(默认值:无) epilog:在参数帮助文档之后显示文本(默认值:无) parents:一个 ArgumentParser 对象列表,它们参数也应包含在内 formatter_class:用于自定义帮助文档输出格式类...help:一个选项作用简单描述 metavar:在使用方法消息中使用参数值示例 dest:被添加到 parse_args() 所返回对象上属性名 下面我们通过具体示例看一下: import argparse

    60120

    Python命令行参数

    python可以使用 sys 模块 sys.argv 命令来获取命令行参数,其中返回参数是一个列表在实际开发,我们一般都使用命令行来执行 python 脚本使用终端执行python文件命令:python...无法做到像liunx命令行一样,可以给使用者提供help帮助。1.2 argparse模块概念: argparse模块可以轻松编写用户友好命行界面。...该程序定义了他需要参数,argparse并将找出如何解析这些参数 sys.argv。该argparse模块还会自动生成帮助和用法消息,并在用户给出程序无效参数时发生异常。...,:是否区分大小写,多行匹配等等。...方法获取匹配成功字符串res1 = re.match('L', saying)# res1等于None,match只能匹配以 xxx 开头字符串,因为saying是以小写字母l开头# 所以匹配失败

    1.6K20

    浅谈Python 命令行参数argparse写入图片路径操作

    什么是命令行参数? 命令行参数是在运行时给予程序/脚本标志。它们包含我们程序附加信息,以便它可以执行。 并非所有程序都有命令行参数,因为并非所有程序都需要它们。 为什么我们使用命令行参数?...那么让我们创建一个名为shape_counter .py新文件并开始编码: ? 我们在第2行导入 argparse – 这是帮助我们解析和访问命令行参数包。...这是必需参数, required = True所示。如上所示, 帮助字符串将在终端中提供附加信息。 类似地,在第10行和第11行,我们指定了 -input 参数,这也是必需。...请记住,输入图像路径包含在 args [ “input” ] ,因此这是cv2参数 imread 。 简单吧?...文本包含形状总数。 最后,我们利用我们 -input 图像路径参数将图像写入到磁盘 cv2.imwrite (第37行)。 让我们用两个参数执行命令: ?

    1.7K10

    使用click创建完美的Python命令行程序

    Click库是一个非常高效命令行工具,能够帮助我们快速创建完美的命令行接口,小编认为这是每个Python程序员都应该掌握工具。 作为Python开发人员,我们经常编写命令行程序。...为了实现这一目标,我总结了四条原则,希望对大家有所帮助命令行参数应提供默认值 处理所有可能参数错误,包括缺少参数,数据类型错误,无法找到文件等 撰写完善文档,解释参数含义以及如何设置 使用进度条显示长时间运行任务...sys.argv是一个列表,包含了用户在运行脚本时输入所有参数(包括脚本名字本身)。...从本地文件读取输入 命令行参数接收值是将被加密最高机密消息,所以如果要求用户直接在终端输入纯文本,可能会引发安全顾虑。...确定解密后 25 个文本哪个最可能是原始文本方法之一,就是统计所有这些文本英文单词个数。

    1K10

    python入门:argparse浅析 nargs=+作用

    补充知识:argparse解析命令行参数 argparse简介: 在argparse,最常用就是上述三部分了:创建一个ArgumentParser对象;使用add_argument()方法来为创建...8、fromfile_prefix_chars:有时会使用文件给parse_args()传入参数,为了能够识别文件字符串,”demo.txt”,需要设置此值,”@”,那么所有以此字符为开头字符串都被当作是文件...为False时,是要做parent(其实可以设置Parser重写)。默认是-h/–help,若prefix_chars没有包含’-‘,那么就以其中第一个字符作为代替。...设置为argparse.SUPPRESS可不显示帮助信息。 10、metavar:在Parser生成帮助信息时,需要有字符代表需要传入值。...但有时位置参数值必须是一个’-‘开头值,’-f’,那么使用parser.parse_args([‘–‘, ‘-f’]),’–‘代表后续所有传入值都需要看做是位置参数。

    13.3K10

    会用python把linux命令写一遍的人,进大厂有多容易?

    读者应该都对一个命令有点印象吧?没错,就是 linux 中经常会用到 ls 命令。 文章我就提到如何提升自己 python 能力呢?...2018.2 - 使用模块:argparse, os 了解argparse模块 argparse是python标准库,他可以使我们很友好编写命令行界面,并且可以自动生成帮助文档和使用消息,还能在参数无效时候发出错误...2. usage: 显示这个命令用法, 一般用来显示参数用法 3. description:显示这个命令帮助信息 4. epilog: 显示命令帮助信息,位置在参数下面 argparse.ArgumentParser.add_argument...只保存True和False - append: 将相同参数不同值保存在一个list - count: 统计参数出现次数 - help: 输出程序帮助信息 - version...- nargs='*': 将所有的参数保存在列表 - nargs='+': 将所有的参数保存在列表,但是至少得有一个参数 - nargs=argparse.REMAINDER: 其余参数全部保存在一个

    65330

    如何利用Python学习linux命令

    没错,就是 linux 中经常会用到 ls 命令。 文章我就提到如何提升自己 python 能力呢?...使用模块:argparse, os 了解argparse模块 argparse是python标准库,他可以使我们很友好编写命令行界面,并且可以自动生成帮助文档和使用消息,还能在参数无效时候发出错误...2. usage: 显示这个命令用法, 一般用来显示参数用法 3. description:显示这个命令帮助信息 4. epilog: 显示命令帮助信息,位置在参数下面 argparse.ArgumentParser.add_argument...True和False - append: 将相同参数不同值保存在一个list - count: 统计参数出现次数 - help: 输出程序帮助信息 - version: 输出程序版本信息...- nargs='*': 将所有的参数保存在列表 - nargs='+': 将所有的参数保存在列表,但是至少得有一个参数 - nargs=argparse.REMAINDER: 其余参数全部保存在一个

    81310

    会用python把linux命令写一遍的人,进大厂有多容易?

    读者应该都对一个命令有点印象吧?没错,就是 linux 中经常会用到 ls 命令。 文章我就提到如何提升自己 python 能力呢?...2018.2 - 使用模块:argparse, os 了解argparse模块 argparse是python标准库,他可以使我们很友好编写命令行界面,并且可以自动生成帮助文档和使用消息,还能在参数无效时候发出错误...2. usage: 显示这个命令用法, 一般用来显示参数用法 3. description:显示这个命令帮助信息 4. epilog: 显示命令帮助信息,位置在参数下面 argparse.ArgumentParser.add_argument...只保存True和False - append: 将相同参数不同值保存在一个list - count: 统计参数出现次数 - help: 输出程序帮助信息 - version...- nargs='*': 将所有的参数保存在列表 - nargs='+': 将所有的参数保存在列表,但是至少得有一个参数 - nargs=argparse.REMAINDER: 其余参数全部保存在一个

    61120

    python:argparse用于命令行参数解析

    argparse是python内置命令行解析模块,内置于python,导入即可使用。...this help message and exit argparse.ArgumentParser是创建一个参数解析实例,参数description指定帮助中程序描述信息,prog指定帮助信息程序名称...action是在接收到命令行参数后如何处理参数值,默认情况下是存储值,比如上例f,传入了三个参数1 3 str,解析结果就是储存了一个包含三者一个列表。...add_subparsers可以添加命令 import argparse parser = argparse.ArgumentParser( description="Test sub commond...对象,对其添加命令A和B,每个子命令可以继续添加argument,结果如下: # 帮助信息 >python parser-tools.py -h usage: Parse-Tools [-h] {A,

    2.6K30
    领券