Python:使用OptionParser

时间:2016-07-14 11:10:17

标签: python command-line

我想使用这样的程序:

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读取FILE类型,但如果我将-f放在两者中,则会出现冲突错误。
有关如何进行的任何建议?
谢谢!

1 个答案:

答案 0 :(得分:3)

根据documentation,optparse不支持带有单个连字符( - )的多个字母。

  

世界上看到的一些选项语法包括:

     
      
  • 连字符后跟几个字母,例如-pf(这与合并为单个参数的多个选项不同)
  •   
  • 一个连字符后跟一个完整的单词,例如-file(这在技术上等同于以前的语法,但它们通常不会出现在   同一个程序)
  •   
  • 一个加号后跟一个字母,或几个字母,或一个单词,例如+ f,+ rgb
  •   
  • 斜线后跟一个字母,或几个字母或一个单词,例如/ f,/ file
  •   
     

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')