Python 中带有可选参数的命令行选项
我想知道是否有一种简单的方法来解析 Python 中具有可选参数的命令行选项。例如,我希望能够以两种方式调用脚本:
> script.py --foo
> script.py --foo=bar
从Python getopt 文档看来我必须选择其中一种。
I was wondering if there's a simple way to parse command line options having optional arguments in Python. For example, I'd like to be able to call a script two ways:
> script.py --foo
> script.py --foo=bar
From the Python getopt docs it seems I have to choose one or the other.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
stdlib 中的 optparse 模块不支持开箱即用(并且不应该这样做,因为以这种方式使用命令行选项是一种不好的做法)。
正如 @Kevin Horn 指出的,你可以使用
argparse
模块(可通过easy_install argparse
安装或直接获取 argparse.py 并将其放在sys.path
中的任何位置)。示例
输出
optparse
module from stdlib doesn't support it out of the box (and it shouldn't due to it is a bad practice to use command-line options in such way).As @Kevin Horn pointed out you can use
argparse
module (installable viaeasy_install argparse
or just grab argparse.py and put it anywhere in yoursys.path
).Example
Output
另请注意,标准库还有 optparse,这是一个更强大的选项解析器。
Also, note that the standard library also has optparse, a more powerful options parser.
查看 argparse:
http://code.google.com/p/argparse/
尤其是“nargs”选项
check out argparse:
http://code.google.com/p/argparse/
especially the 'nargs' option
optparse 中没有选项允许您执行此操作。但你可以扩展它来做到这一点:
http://docs.python .org/library/optparse.html#adding-new-actions
There isn't an option in optparse that allows you to do this. But you can extend it to do it:
http://docs.python.org/library/optparse.html#adding-new-actions
使用 optparse 包。
Use the optparse package.