Python 选项解析器:带有可选参数的布尔标志
我正在使用 optparse.OptionParser 来管理某些脚本的参数,我想知道/想做的是拥有也可以接受参数的布尔标志(即 action=store_true
)。
为了说明这一点,我有一个应用程序,它可以使用机器上找到的尽可能多的 GPU/处理器。出于各种原因,有时您想要限制它使用的设备数量,而不是进一步混乱命令行,我希望能够:
script -c -g
意味着使用所有 cpu 和 gpu 的所有资源,
script -c 2 -g 3
意味着限制脚本执行到 2 个 CPU 和 3 个 GPU。
阅读 optparse 文档后,我一无所知。哦,伟大的大师们!把你的智慧借给我吧!
I'm using optparse.OptionParser to manage arguments for some scripts, and something I was wondering / would like to do is have boolean flags (i.e action=store_true
) that can also accept a parameter.
To put this into context, I've got a application that can use as many GPU/Processors as it finds on the machine. For a variety of reasons sometimes you want to limit the number of devices it uses, and instead of further cluttering the command line, I'd like to be able to:
script -c -g
meaning use all you can of all cpus and gpus, and
script -c 2 -g 3
meaning limit the script execution to 2 CPUs and 3 GPUs.
After reading the optparse documentation, I'm none the wiser. Oh great SO gurus! Lend me your wisdom!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以使用
callback
操作来轻松实现这一点。特别是,文档中的示例 6OptionParser
的回调操作讨论可变数量的参数。这是该示例中的一个有说服力的引用:You can use the
callback
action to implement this quite easily. In particular, example 6 in the documentation of the callback action ofOptionParser
discusses a variable number of arguments. Here's a telling quote from that example: