2010-06-01 58 views
1

我想使用optparse,但我有問題。optparse:沒有選項字符串

我的腳本用法是:script <filename>

我不打算加入任何選項字符串,如:script -f <filename>script --file <filename>

有什麼辦法,我可以選擇不傳遞一個參數字符串?或者有什麼辦法可以讓用戶做到這一點:

script -f <filename> 
script --filename <filename> 
script <filename> 

以上所有都具有相同的結果?

我知道,我可以輕鬆地做這個用argv[1]但事情是,我可能以後需要添加命令行支持的項目,並添加到時候我不希望各地增加optparse支持。這就是我想使用optparse的原因。

回答

1
import optparse 

parser = optparse.OptionParser() 
parser.add_option("-f", "--filename", metavar="FILE", dest="input_file", action="append") 
options, args = parser.parse_args() 
if options.input_file: 
    args.extend(options.input_file) 

for arg in args: 
    process_file(arg) 

這將簡單地使用args作爲輸入文件的列表,但它會追加爲-f--filename參數args所以你會得到所有的人傳遞的文件名。

+0

你能解釋一下'process_file'的功能嗎? – user225312 2010-06-01 08:20:31

+0

@Alfred我猜'process_file'是一個例子子程序,用作實際使用你的''輸入的代碼放置位置的標記。 – 2010-06-01 08:33:56

+0

@彼得:啊哈!謝謝。愚蠢的我 :) – user225312 2010-06-01 09:00:13