Python 指定要与argsparse一起运行的命令

Python 指定要与argsparse一起运行的命令,python,command-line-arguments,Python,Command Line Arguments,我正在编写一个python程序,它有不同的行为,即它为不同的[command]参数调用不同的函数。可以从指定命令列表中选择这些命令。目前我有: parser.add_argument("command", choices=["command1", "command2"]) 然而,这意味着我不能为每个不同的命令指定帮助消息,而且它看起来有点粗糙。有没有一种正确的方法可以让我为每个命令指定帮助 编辑:如何确保命令是第一个参数?为了使每个命令都有自己的帮助消息,命令必须是一个参数,而不是位置参数:

我正在编写一个python程序,它有不同的行为,即它为不同的[command]参数调用不同的函数。可以从指定命令列表中选择这些命令。目前我有:

parser.add_argument("command", choices=["command1", "command2"])
然而,这意味着我不能为每个不同的命令指定帮助消息,而且它看起来有点粗糙。有没有一种正确的方法可以让我为每个命令指定帮助


编辑:如何确保命令是第一个参数?

为了使每个命令都有自己的帮助消息,
命令必须是一个参数,而不是位置参数:

command = parser.add_subparsers(title='command', dest='command')
command.add_parser('command1', help='Foo all your bars')
command.add_parser('command2', help='Bar all your foos')

使每个命令都有自己的参数?那必须是一个标志吗?如果有人传递'command1',然后
args.command=command1
?当我使用此方法时,我从help获得命令格式:program.py[]{command1,command2}。。。[other_arg],但是当我试图运行
program.py command1 arg
时,它会显示错误:无法识别的参数:arg另外,“command”没有作为位置参数列出,而是作为“command”结尾@Ela:Yes列出您的第一条注释。每个子parser需要单独添加自己的位置参数集;有关示例,请参阅文档。