Python argparse模块用法

Python argparse模块用法,python,arguments,argparse,Python,Arguments,Argparse,我有一个程序,叫做: program.py add|remove|show program.py add "a string" "another string" program.py remove "a string" program.py show 这里的问题是,根据add/remove/show命令,它接受的参数数量可变,如下所示: program.py add|remove|show program.py add "a string" "another string" progr

我有一个程序,叫做:

program.py add|remove|show 
program.py add "a string" "another string"
program.py remove "a string"
program.py show
这里的问题是,根据add/remove/show命令,它接受的参数数量可变,如下所示:

program.py add|remove|show 
program.py add "a string" "another string"
program.py remove "a string"
program.py show
因此,“add”命令将接受2个字符串参数,“remove”命令将只接受1个参数,“show”命令将不接受任何参数。 我知道如何使用模块argparse创建基本参数解析器,但我对它没有太多经验,因此我从以下内容开始:

import argparse
parser = argparse.ArgumentParser()
parser.add_argument("command", choices=["add", "remove", "show"])

但我不知道如何继续,以及如何根据命令实现此功能。提前谢谢

您正在查找argparse的子parser

parser = argparse.ArgumentParser(prog='PROG')
subparsers = parser.add_subparsers(help='sub-command help')

# create the parser for the "add" command
parser_add = subparsers.add_parser('add', help='add help')
# [example] add an argument to a specific subparser
parser_add.add_argument('bar', type=int, help='bar help')

# create the parser for the "remove" command
parser_remove = subparsers.add_parser('remove', help='remove help')

# create the parser for the "show" command
parser_show = subparsers.add_parser('show', help='show help')

此示例代码在对语言进行很少修改的情况下被盗。

您正在查找argparse的子parser

parser = argparse.ArgumentParser(prog='PROG')
subparsers = parser.add_subparsers(help='sub-command help')

# create the parser for the "add" command
parser_add = subparsers.add_parser('add', help='add help')
# [example] add an argument to a specific subparser
parser_add.add_argument('bar', type=int, help='bar help')

# create the parser for the "remove" command
parser_remove = subparsers.add_parser('remove', help='remove help')

# create the parser for the "show" command
parser_show = subparsers.add_parser('show', help='show help')

此示例代码在对语言进行很少修改的情况下被盗。

如何检查已选择的选项并获取相应的变量?@xBlackout——我链接的文档也提供了相关建议。。。在页面中搜索以“处理子命令的一种特别有效的方法”开头的句子。tl;博士您可以使用
set_defaults
将函数附加到选定子parser的名称空间。然后您只需调用该函数即可执行与所选子Parser关联的操作。如何检查已选择的选项并获取相应的变量?@xBlackout--我链接的文档也提供了相关建议。。。在页面中搜索以“处理子命令的一种特别有效的方法”开头的句子。tl;博士您可以使用
set_defaults
将函数附加到选定子parser的名称空间。然后您只需调用该函数来执行与所选子Parser关联的操作。