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

支持argparse中子命令前后的全局参数

在argparse中,子命令前后的全局参数可以通过添加父级解析器和子级解析器来实现。父级解析器用于处理全局参数,而子级解析器用于处理特定子命令的参数。

父级解析器可以定义全局参数,这些参数在所有子命令中都可用。可以通过add_argument方法添加全局参数,指定参数的名称、缩写、类型、默认值等信息。例如,可以使用以下代码定义一个全局参数:

代码语言:txt
复制
import argparse

# 创建父级解析器
parser = argparse.ArgumentParser()

# 添加全局参数
parser.add_argument("--verbose", "-v", action="store_true", help="显示详细输出")
parser.add_argument("--debug", "-d", action="store_true", help="启用调试模式")

子级解析器用于处理特定子命令的参数。可以通过add_subparsers方法创建子级解析器,并为每个子命令定义参数。例如,可以使用以下代码创建一个子级解析器和一个子命令:

代码语言:txt
复制
# 创建子级解析器
subparsers = parser.add_subparsers(title="子命令", dest="command")

# 创建子命令解析器
command_parser = subparsers.add_parser("command", help="执行命令")

# 添加子命令参数
command_parser.add_argument("arg1", type=int, help="参数1")
command_parser.add_argument("arg2", type=int, help="参数2")

然后,可以根据命令行参数解析器解析输入的参数,并根据命令执行相应的操作。例如,可以使用以下代码解析参数并执行相应的操作:

代码语言:txt
复制
# 解析命令行参数
args = parser.parse_args()

# 根据子命令执行相应的操作
if args.command == "command":
    # 执行命令操作
    result = args.arg1 + args.arg2

    # 输出结果
    if args.verbose:
        print("结果:", result)
    else:
        print(result)

总结起来,支持argparse中子命令前后的全局参数的关键是使用父级解析器和子级解析器来处理全局参数和特定子命令的参数。通过定义全局参数和子命令参数,并使用parse_args方法解析参数,可以实现对子命令前后的全局参数的支持。

腾讯云的云计算产品提供了各种适用于云原生应用开发、存储、网络通信、人工智能等领域的解决方案。具体推荐的产品和介绍链接地址可以根据具体的需求和场景来选择。可以访问腾讯云官网(https://cloud.tencent.com/)了解更多关于腾讯云的产品和服务。

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

相关·内容

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

(默认值:None) argument_default - 参数全局默认值(默认值:None) conflict_handler - 解决冲突选项策略(通常是不必要) add_help -...nargs关键字参数将不同数量命令参数与一个操作关联起来。支持值是: N (an integer). 命令行中N个参数将被收集到一个列表中。...ArgumentParser支持使用add_subparsers()方法创建这样命令。add_subparsers()方法通常不带参数调用,并返回一个特殊操作对象。...对参数描述: title - 帮助输出中子解析器组标题;默认情况下,如果提供描述,则使用“子命令”,否则使用title作为位置参数。...这些解析器不支持所有argparse特性,如果使用不支持特性,就会引发异常。特别是子解析器argparse。不支持同时包含选项和位置剩余组和互斥组。

6.9K20
  • Python3 初学实践案例(3)argparse 命令参数使用

    Python3 初学实践案例(3)argparse 命令参数使用 在前面一篇博文中 http://blog.csdn.net/fungleo/article/details/78754419, 我实现了一个程序...虽然实现了效果,但是其中处理命令行传入参数,是我自己手写判断。...最终我选择了自带比较新 argparse 库。还有第三方更简洁库,不过我没有使用。...打印帮助信息 我们在程序后面加上 -h 这个参数,就可以得到一个我们程序详细帮助信息。这个是 argparse 自带牛逼功能。省得我们自己去构建帮助信息,我表示非常喜欢。...import argparse # 处理命令参数,使用 argparse 库 parser = argparse.ArgumentParser() # 定义脚本描述信息 parser.description

    1.6K90

    【FFmpeg】ffmpeg 命令查询三 ( 查询 ffmpeg 命令分类支持参数 )

    ) 【FFmpeg】ffmpeg 命令查询三 ( 查询 ffmpeg 命令分类支持参数 ) ---- 文章目录 FFmpeg 系列文章目录 一、查看具体 ffmpeg 命令分类所支持参数 二、...五、查询命令设置项以及具体参数 一、查看具体 ffmpeg 命令分类所支持参数 ---- 查看具体 ffmpeg 命令分类所支持参数语法如下 : ffmpeg -h 参数类型=参数名称 参数类型...二、查询 " 复用器 " 类型 设置 flv 视频格式时 所支持参数 ---- 查询 " 复用器 " 类型 设置 flv 视频格式时 所支持参数 命令 : 如果在命令中使用了 flv 视频...时所支持参数 命令 : 如果在命令中使用了 修改视频速率 过滤器 , 可以设置参数类型 ; ffmpeg -h filter=atempo 执行过程 : 打印出设置 atempo 过滤器时可以设置参数...---- 查询 " 编码器 " 类型设置 libx264 时所支持参数 命令 : 如果在命令中使用了 libx264 编码器 , 可以设置参数类型 ; ffmpeg -h encoder=libx264

    4.1K20

    【Linux】Bash支持各种指令选项原理:命令参数

    本章主要内容面向接触过Linux老铁 主要内容含: 一.认识main函数参数【int argc & char *argv[ ]】 main 中存在两个参数 分别是一个整型,与一个指针数组 二.回顾...Bash支持各种指令选项 如下所示,我们输入指令时,往往可以通过空格,加入各种选项 ls -la ....(正文)Bash支持各种指令选项原理(含推导过程) 我们用自动化构建工具makefile对myproc进行编写 int main(int argc, char* argv[]) { int i =...0; for (; i < argc; i++) { printf("%d:%s\n", i, argv[i]); } return 0; } 执行下面命令 ..../myproc -a -b --help --version 我们发现输出结果是 我们据此可以得出原理 Shell/Os自动把Bash行中一个大字符串以空格作为分割符,被分成5个子串

    9010

    用一个 Python 脚本实现依次运行其他多个带 argparse 命令参数 .py 文件

    问题描述:在 Windows 环境中,您希望通过一个 Python 脚本来实现特定自动化任务,该任务需要依次运行其他多个带 argparse 命令参数 .py 文件。...您希望找到一种简洁、高效方法来解决这个问题。 问题分析与解决: 在 Linux 开发环境中,我们通常可以使用 Bash 脚本来依次运行其他多个带 argparse 命令参数 .py 文件。...输入描述: run_scripts.py:利用 Python os.system 函数来实现依次运行其他多个带 argparse 命令参数 .py 文件。...script_01.py、script_02.py … script_06.py:用于测试其他多个带 argparse 命令参数 .py 文件。...参考链接: 在 Python 中处理命令参数详解(sys.argv 与 argparse 详解) Python 如何运行多个 py 文件 带参数 Python 中四种运行其他程序方式

    8800

    Python argparse标准库快速入门

    Python是一门非常好用脚本语言,自然使用它来开发命令行程序也比较方便。而且Python标准库中有一个名为argparse库,可以非常方便让我们把命令参数转换成所需数据格式。...(默认值:’-’) fromfile_prefix_chars - 当需要从文件中读取其他参数时,用于标识文件名前缀字符集合(默认值:None) argument_default - 参数全局默认值...(默认值: None),假如需要给所有参数指定一个相通默认值,可以修改这个,如果希望全局禁用默认值,可以使用argparse.SUPRESS conflict_handler - 解决冲突选项策略(...如果要测试方法的话,可以手动给它传递一组参数,否则的话,它会自动从命令参数读取。另外它还支持几个比较有用特性: 如果参数比较长,可以使用等号来连接参数与值,例如-foo=bar。...有些程序支持命令,这时候可以使用子parser创建更复杂parser。 FileType。更详细设置文件参数方法。 参数组。

    88410

    python命令行库如何实现子命令共享参数

    本文目标: 本文计划实现一个带有子命令命令行工具,同时带有全局级别的配置参数(比如数据文件地址等)。在这个前提下使用不同标准来比较所提到三个命令行库。...对于给定命令read和write,父命令有一个--format参数,如何使得python main.py read --format=xxx成立。...这个脚本文件声明了两个子命令:model和model2,model会有一个命令参数--cmd1_option1,model2会有一个命令参数--cmd2_option1,同时全局会有一个参数--foo...此外,使用set_defaults来设置了子命令处理函数,以应对可能需要进行单独处理情况。 唯一问题是,全局参数实现比价违背一般习惯。...实现需求 需求本身是很简单,最关键一点就是子命令之间要共享部分全局参数 argparse SO上这个回答还挺不错

    92120

    123-R茶话会20-整理你环境里参数变量及给R脚本进行参数配置

    函数,接着通过操作,将参数都保存在了args 列表中,接着直接通过这个列表对象获取其中值即可,而且其实这个包也蛮有意思,前后会介绍。...argparse进行参数配置 参见:R命令参数解析 - 知乎 (zhihu.com)[2]作者:史冬波 这个包其实蛮有意思: ★为了能够使用Make来构建完整数据自动分析流程,我们就需要R代码能够从命令行解析参数并在...” 也就是说,源代码中,作者真实目的,其实并不是整理环境中变量,而是为了方便调用Rscript,这个之前我们也简单介绍过:[[98-R茶话会17-在后台执行R命令]] 回顾一下之前Rscript...", stderr()) } cat(paste0(args$a + args$b), "\n") 通过argparse相关函数,我们可以通过-h 参数,获取之前自己预设各种参数及它们提示信息...6a689681a577bf4585da94ac7389739a19ee2f39/benchmark/benchmark_make_data/make_bm_data_clusters.R [2] R命令参数解析

    60520

    python-argparse

    对于简单程序脚本,可以直接使用sys.argv[] 来获取命令参数,但是应用到大软件项目中,我们需要更加规范,更加方便而功能强大工具来处理命令参数,本文主要介绍python标准库argparse...python标准库中getopt, optparse, argparse都是专门处理命令参数模块 getopt 是类似UNIX系统getopt这个C函数实现,可以处理长短配置项和参数。...声明式风格优点,又多了更丰富功能,所以是现阶段最好用参数处理标准库 docopt 是比前者更先进更易用命令参数处理器,甚至不用写代码,只要编写类似argparse 输出帮助信息即可,因为其还不是标准库...,所以现在主要学习argparse argparse argparse 解析命令行选项,参数以及子命令 argparse 可以帮助更方便写出用户友好命令行接口。...-h –help选项,默认为True prefix_chars 命令行选项前缀,默认为’-‘ fromfile_prefix_chars 从文件中获取参数信息 argument_default 设置参数全局默认值

    79110

    Python 模块:argparse

    argparse 模块可以让人轻松编写用户友好命令行接口。程序定义它需要参数,然后 argparse 将弄清如何从 sys.argv 解析出那些参数。...,用于标识文件名前缀字符集合(默认值:None) argument_default - 参数全局默认值(默认值:None) conflict_handler - 解决冲突选项策略(通常是不必要)...如果解析器需要支持不同或者额外字符,比如像 +f 或者 /foo 选项,可以在参数解析构建器中使用 prefix_chars= 参数。...nargs 命名参数关联不同数目的命令参数到单一动作。支持值有: N (一个整数)。命令行中 N 个参数会被聚集到一个列表中。...通过设置 help 值为 argparse.SUPPRESS,argparse 支持对特定选项不显示 help 信息。

    2.5K10

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

    补充知识:argparse解析命令参数 argparse简介: 在argparse中,最常用就是上述三部分了:创建一个ArgumentParser对象;使用add_argument()方法来为创建...若设置,则在帮助信息中,可以使用%(prog)s来作为格式化引用(修改一处全局受用)。...自定义,通过定义一个argparse.Action子类来实现。实际上,上面的这些可选项都是通过这种形式定义。 3、nargs:ArgumentParser对象通常将一个动作与一个命令参数关联。...或nargs=’*’,那么当没有参数赋值给该项时,会使用default定义值。 而default=argparse.SUPPRESS时,则表示命令行中未出现某一项时,不会对它进行默认赋值。...任何支持in操作符均可作为choices赋值,所以字典,列表,集合,等等其他容器均都支持

    13.1K10

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

    简介 argparse 模块主要用于处理 Python 命令参数和选项,程序定义好所需参数后,该模块会通过 sys.argv 解析出那些参数;除此之外,argparse 模块还会自动生成帮助和使用手册...使用 argparse 模块,我们可以轻松编写出用户友好命令行接口。 2....:参数全局默认值(默认值:None) conflict_handler:解决冲突选项策略(通常是不必要) add_help:为解析器添加一个 -h/--help 选项(默认值:True) allow_abbrev...,看一下参数说明: name or flags:一个命名或者一个选项字符串列表,例如:-f,--foo action:当参数命令行中出现时使用动作基本类型 nargs:命令参数应当消耗数目 const...:被一些 action 和 nargs 选择所需求常数 default:当参数未在命令行中出现时使用值 type:命令参数应当被转换成类型 choices:可用参数容器 required:此命令行选项是否可省略

    59320

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

    前言 在上一篇“深入 argparse (一)”文章中,我们深入了解了 argparse 包括参数动作和参数类别在内基本功能,具备了编写一个简单命令行程序能力。...比如某命令支持三个参数选项 --user、--password和--push,前两者需要放在一个名为 authentication 分组中以表示它们是身份认证信息。...选项参数前缀 不知你是否注意到,在不同平台上命令行程序选项参数前缀可能是不同。...而 delete 命令支持 --recursive 参数来表明是否递归删除指定路径: # cli.py import argparse parser = argparse.ArgumentParser...optional arguments: -h, --help show this help message and exit 直接指定 delete -h 来查看 delete 子命令支持参数选项

    1.4K20

    python3 argparse模块

    1、定义:argparse是python标准库里面用来处理命令参数库 2、命令参数分为位置参数和选项参数: 位置参数就是程序根据该参数出现位置来确定 如:[root@openstack...就是ls命令一个选项参数 3、使用步骤: (1)import argparse 首先导入模块 (2)parser = argparse.ArgumentParser() 创建一个解析对象...(3)parser.add_argument() 向该对象中添加你要关注命令参数和选项 (4)parser.parse_args() 进行解析 4、argparse.ArgumentParser..., - 自定义帮助信息格式 prefix_chars=’-‘, - 命令前缀,默认是‘-’ fromfile_prefix_chars=None, - 命令参数从文件中读取...name or flags… - 必选,指定参数形式,一般写两个,一个短参数,一个长参数 import argparse parser = argparse.ArgumentParser() parser.add_argument

    85150

    python3中argparse模块

    1、定义:argparse是python标准库里面用来处理命令参数库2、命令参数分为位置参数和选项参数: 位置参数就是程序根据该参数出现位置来确定...:[root@openstack_1 /]# ls -l # -l 就是ls命令一个选项参数 3、使用步骤:(1)import argparse 首先导入模块(2)parser = argparse.ArgumentParser...() 创建一个解析对象(3)parser.add_argument() 向该对象中添加你要关注命令参数和选项(4)parser.parse_args() 进行解析 4、argparse.ArgumentParser...=None, - 命令参数从文件中读取 argument_default=None, - 设置一个全局选项缺省值,一般每个选项单独设置 conflict_handler...- 必选,指定参数形式,一般写两个,一个短参数,一个长参数import argparse parser = argparse.ArgumentParser() parser.add_argument

    71410

    【说站】Python argparse基本使用步骤

    argparse库是python下一个命令参数管理库,支持int、str、float、bool、数组等5种基本数据类型。在解析命令参数时还支持默认值。...此外,还支持修改命令参数,在代码中增加命令参数等操作。通过argparse库,可以实现参数简易管理,控制代码执行中一些流程或参数值。...基本用法 1、int支持 argparse写法 ,class_nums默认值为7 parser.add_argument("--class_nums", type=int, default=7) 命令行传参写法...,覆盖了默认值 test.py --lr 0.001 4、bool支持 argparse写法 ,pretrained默认值为None。...), 此时pretrained值为True test.py --pretrained 5、数组支持 argparse写法 ,input_shape默认值为[256, 256]。

    51930

    Python命令参数解析

    命令参数解析在编程语言中基本都会碰到,Python中内置了一个用于命令项选项与参数解析模块argparse。下面主要介绍两种解析Python命令参数方式。...但在编写简单脚本,参数较少且固定时比较方便。 2. argparse argparse模块是Python内置参数解析模块,使用起来比较简单且功能强大。Demo如下: #!...- 可选参数前缀字符集(默认:‘-‘) fromfile_prefix_chars - 额外参数应该读取文件前缀字符集(默认:None) argument_default - 参数全局默认值...action - 在命令行遇到该参数时采取基本动作类型。 nargs - 应该读取命令参数数目。 const - 某些action和nargs选项要求常数值。...default - 如果命令行中没有出现该参数默认值。 type - 命令参数应该被转换成类型。 choices - 参数可允许一个容器。

    1.7K00

    【Python】字符串 str ③ ( 字符串操作 | 字符去除前后 空格 元素 - strip 函数 | 统计字符串中子串个数 - count 函数 | 统计字符串长度 - len 函数 )

    一、字符去除前后 空格 / 元素 - strip 函数 调用 字符串 str#strip 函数 , 可以将 字符串 前后 空格 或者 指定若干元素 去除 ; 注意 : 这里指的是 字符串 前后元素..., 如果是字符串中间元素 不管 ; 语法 : strip 函数参数有默认值 , 不传参数默认为空格 , 传入参数默认为传入参数 ; # 不传入任何参数 , 去除空格 字符串变量.strip()...# 传入字符串 , 则会去除 字符串中所有元素 字符串变量.strip(字符串) 如果不传入任何参数 , 则默认去除空格 ; 传入字符串 , 则会去除 字符串中所有元素 ; 如 : 传入 “abc...- count 函数 调用 字符串 str#count 函数 , 可以 统计字符串中子串个数 ; 语法 : 字符串变量.count(字符串) 代码示例 : """ 字符串 str 代码示例 """...长度限制 : 字符串长度不限制 , 长度唯一限制就是内存大小限制 ; 下标索引 : 可以使用下标索引访问字符元素 ; 重复元素 : 允许重复元素 ; 只读属性 : 只读容器 , 不可修改 ; 循环类型 : 支持

    32620
    领券