簡體   English   中英

Python中帶有可選參數的命令行選項

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM