Python选项解析器:带可选参数的布尔标志
我正在使用 optparse.OptionParser 来管理一些脚本的参数,我想知道/想做的是有一些布尔标志(也就是 action=store_true
),它们也可以接受一个参数。
为了让你更好理解,我有一个应用程序,可以使用机器上找到的所有 GPU 和处理器。出于各种原因,有时候你可能想限制它使用的设备数量,而不是让命令行变得更复杂,我希望能够这样做:
script -c -g
这意味着可以使用所有的 CPU 和 GPU,
script -c 2 -g 3
而这个则意味着将脚本的执行限制在 2 个 CPU 和 3 个 GPU。
看完 optparse 的文档后,我还是没搞明白。哦,伟大的 Stack Overflow 大神们!请赐教我一些智慧吧!
1 个回答
1
你可以使用 callback
这个动作来很简单地实现这个功能。特别是,文档中的第6个例子,讲的是 OptionParser
的回调动作如何处理可变数量的参数。这里有一句很重要的引用:
当你想让一个选项接受可变数量的参数时,事情就变得复杂了。在这种情况下,你必须写一个回调,因为 optparse 并没有提供任何内置的功能来处理这个问题。