来自stdlib的optparse模块不支持开箱即用(并且不应该因为以这种方式使用命令行选项是不好的做法).
作为@Kevin Horn pointed out,您可以使用argparse模块(可通过easy_install argparse安装或只需抓取argparse.py并将其放在sys.path中的任何位置).
例
#!/usr/bin/env python
from argparse import ArgumentParser
if __name__ == "__main__":
parser = ArgumentParser(prog='script.py')
parser.add_argument('--foo', nargs='?', metavar='bar', default='baz')
parser.print_usage()
for args in ([], ['--foo'], ['--foo', 'bar']):
print "$%s %s -> foo=%s" % (
parser.prog, ' '.join(args).ljust(9), parser.parse_args(args).foo)
产量
usage: script.py [-h] [--foo [bar]]
$script.py -> foo=baz
$script.py --foo -> foo=None
$script.py --foo bar -> foo=bar