2016-07-14 61 views
1

從命令行2名我想用這樣的程序:的Python:獲得使用OptionParser

python myprg.py -f1 t1.txt -f2 t.csv 

其中F1,F2是文件名。
我有以下代碼:

from optparse import OptionParser 
def main(): 
    optparser = OptionParser() 
    optparser.add_option('-f1', '--inputFile1', 
         dest='input1', 
         help='file to be checked', 
         default=None) 
    optparser.add_option('-f2', '--inputFile2', 
         dest='input2', 
         help='basis csv file', 
         default='defaut.csv') 
.... 
.... 

我的文檔是-f讀取文件類型看,但是如果我在兩個放-f,它給了衝突的錯誤。
關於如何進行的任何建議?
謝謝!

+2

你什麼錯誤?請[編輯]到問題中,給出[mcve]。 – jonrsharpe

+0

「衝突錯誤」完全不清楚。 – doctorlove

回答

3

documentation,optparse不支持用連字符多個字母( - )。

世界已經看到了一些選項的語法包括:

  • 一個連字符後面幾個字母,例如-pf(這是不一樣的多個選項合併成一個單一的參數)
  • 一個連字符,接着整個字,例如(這在技術上等同於先前的語法,但是它們通常不在
    相同的程序中看到)
  • 加號後跟單個字母或幾個字母或單詞,例如, + F,+ RGB
  • 斜線後跟一個字母或幾個字母或單詞,例如/ f,/文件

optparse不支持這些選項語法,它們從不會被 所支持。

您應該更改選項鍵類似的東西-f1-a-f2-b

python myprg.py -a t1.txt -b t.csv 



optparser.add_option('-a', '--inputFile1', 
         dest='input1', 
         help='file to be checked', 
         default=None) 
optparser.add_option('-b', '--inputFile2', 
         dest='input2', 
         help='basis csv file', 
         default='defaut.csv')