我正在编写一个python脚本,它以以下格式从命令行接收参数:
./myfile subcommand --change --host=myhost --user=whatever
--change
在某种程度上是必需的,这意味着目前这是唯一可用的选项,但稍后我将添加其他选项,但最终用户需要在这些选项之间进行选择。在
--host
是必需的。这不是位置论。在
--user
不是必需的,它有一个默认值。这不是位置论。在
我使用下面的代码来创建这个命令,但是 #!/usr/bin/env python
import argparse
parser = argparse.ArgumentParser(description='My example explanation')
subparsers = parser.add_subparsers(dest='action')
subparsers.required = True
subcommand_parser = subparsers.add_parser('subcommand')
subcommand_parser_subparser = subcommand_parser.add_subparsers()
change_subcommand_parser = subcommand_parser_subparser.add_parser('--change')
change_subcommand_parser.add_argument('--host', required=True)
change_subcommand_parser.add_argument('--user', required=False, default='Salam')
print(parser.parse_args())
在CLI中使用以下命令尝试此代码时:
./myscript something --change --host hello --user arian
我得到以下错误:
usage: myscript subcommand [-h] {--change} ...
myscript subcommand: error: invalid choice: 'hello' (choose from '--change')
我的问题是:
--user
&;--host
,而不将它们用作位置参数?在
目前没有回答
相关问题 更多 >
编程相关推荐