2011-11-16 46 views
-1

可能重複選項:
How can I get optparse’s OptionParser to ignore invalid arguments?添加未發現的ARG

我想用optparse解析我的輸入。我如何獲得optparse忽略未提供的選項並將它們附加到參數?我的程序的用戶不是精通計算機的人,我不想向他們解釋他們需要在命令行上提供' - '來獲取一些參數。

+0

你能舉出一個例子嗎?如果他們不想追加 - 或 - 選項,他們將如何傳遞或區分選項?例如, –

+0

。說我的程序是calc.py,它需要像'calc.py --add 3 -2'作爲參數,optparse給出「沒有這樣的選項:-2」 – Akash

+0

@Aash:它是否也像這樣,當你設置'NARGS = 2'? – Daenyth

回答

1

default=只需設置默認值,那麼如果沒有給出ARG,默認值將被使用:

from optparse import OptionParser 
[...] 
parser = OptionParser() 
parser.add_option("-f", "--file", dest="filename", 
        help="write report to FILE", metavar="FILE") 
parser.add_option("-q", "--quiet", 
        action="store_false", dest="verbose", default=True, 
        help="don't print status messages to stdout") 

(options, args) = parser.parse_args() 

要添加多個參數的選項,使用nargs=#

import optparse 

if __name__ == '__main__': 
    parser = optparse.OptionParser() 
    parser.add_option("-a", "--add", nargs=2, dest="add") 
    (options, args) = parser.parse_args() 

    first_add = int(options.add[0]) 
    second_add = int(options.add[1]) 
    print "%d" % (first_add + second_add) 

結果:

[ 12:05 [email protected] ~/SO/python ]$ ./optparse-add-options-not-found-to-args.py --add 1 -2 
-1 
[ 12:07 [email protected] ~/SO/python ]$ ./optparse-add-options-not-found-to-args.py -a -50 -75 
-125 

http://docs.python.org/library/optparse.html