[英]Command line options with optional arguments in Python
我想知道是否有一種簡單的方法來解析Python中具有可選參數的命令行選項。 例如,我希望能夠以兩種方式調用腳本:
> script.py --foo
> script.py --foo=bar
從Python getopt文檔中我似乎必須選擇其中一個。
另外,請注意標准庫還有optparse ,一個功能更強大的選項解析器。
查看argparse: http : //code.google.com/p/argparse/
特別是'nargs'選項
來自stdlib的optparse
模塊不支持開箱即用(並且不應該因為以這種方式使用命令行選項是不好的做法)。
正如@Kevin Horn指出的那樣你可以使用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
optparse中沒有允許您執行此操作的選項。 但你可以擴展它來做到這一點:
http://docs.python.org/library/optparse.html#adding-new-actions
使用optparse包。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.