微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使argparse将所有参数视为位置参数?

如何解决如何使argparse将所有参数视为位置参数?

我如何使argparse解析器将所有参数视为 positional ,甚至将那些看起来像选项的参数也视为 positional ?例如,使用以下定义:

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

我希望能够跑步

prog.py mycomand --foo arg

并将['mycomand','--foo','arg']捕获为cmd参数。

解决方法

原来,我只需要将nargs='*'替换为nargs=argparse.REMAINDER。来自docs

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

这也可以,但是不太方便:

prog.py mycomand -- --foo arg

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。