首页 > 解决方案 > 如何使 argparse 将所有参数视为位置?

问题描述

如何使argparse解析器将所有参数视为positional,即使是那些看起来像选项的参数?例如,使用此定义:

parser.add_argument('cmd', nargs='*', help='The command to run')

我希望能够跑步

prog.py mycomand --foo arg

并被['mycomand', '--foo', 'arg']捕获为cmd论据。

标签: pythonargparsepositional-parameter

解决方案


原来我只需要替换nargs='*'nargs=argparse.REMAINDER. 从文档

argparse.REMAINDER所有剩余的命令行参数都被收集到一个列表中。这对于调度到其他命令行实用程序的命令行实用程序通常很有用。

这也有效,但不太方便:

prog.py mycomand -- --foo arg

推荐阅读