Python 选项解析器:带有可选参数的布尔标志

发布于 2024-11-06 14:21:50 字数 399 浏览 7 评论 0原文

我正在使用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

落墨 2024-11-13 14:21:50

您可以使用callback操作来轻松实现这一点。特别是,文档中的示例 6 OptionParser 的回调操作讨论可变数量的参数。这是该示例中的一个有说服力的引用:

当你想要一个
采取可变数量的选项
论据。对于这种情况,您必须
写一个回调,因为 optparse 没有
提供任何内置功能
它。

You can use the callback action to implement this quite easily. In particular, example 6 in the documentation of the callback action of OptionParser discusses a variable number of arguments. Here's a telling quote from that example:

Things get hairy when you want an
option to take a variable number of
arguments. For this case, you must
write a callback, as optparse doesn’t
provide any built-in capabilities for
it.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文