optparse
модуль из stdlib не поддерживает его из коробки (и это не должно из-за плохой практики использовать параметры командной строки таким образом).
Как указал @ Кевин Хорн , вы можете использовать модуль 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