【发布时间】:2023-10-31 10:43:01
【问题描述】:
我想在这样的位置参数之前使用带有可选参数的脚本:
script.py ls --fruit 苹果厨房
- “ls”是如下子命令
- “fruit”是可选的,可能存在也可能不存在
- “厨房”是我的位置,我将其命名为“位置”
parser_ls = subparsers.add_parser('ls', help='Lists all fruits in the location', add_help=False) parser_ls.add_argument('--fruit', type=str, dest="fruits", nargs='?') parser_ls.add_argument('location', nargs=argparse.REMAINDER)
目前我尝试使用 nargs=argparse.REMAINDER 作为“位置”,但我将获得位置命名空间中的所有值和水果中的 None,这不是我想要的。
Namespace(location=['--fruits', 'apple', 'kitchen'], help_down=False, fruits=None)
【问题讨论】:
-
嗨,如果我用 * 替换 REMAINDER,它不会看到我的“位置”值,除非我把它放在第一个作为“ls kitchen --fruits apple”,但我想得到“ls ——水果苹果厨房”。有什么想法吗?
标签: python-3.x arguments parameter-passing argparse