optparse args什么都没得到(python)

时间:2013-10-29 19:17:32

标签: python args optparse

我看到了这个页面:http://docs.python.org/2/library/optparse.html

写了这段代码:

parser = optparse.OptionParser(usage=use)
parser.add_option("-z", dest="zipname")
parser.add_option("-d", dest="dictionary")

(options, args) = parser.parse_args()
print len(args)

所以我尝试了:

  

script.py -z hello.zip -d world.txt

得到了:

  

>> 0

当我使用 options.zipname options.dictionary 时,没关系,但为什么?感谢。

2 个答案:

答案 0 :(得分:3)

args的{​​{1}}返回值是“处理完所有选项后剩余的位置参数”(http://docs.python.org/2/library/optparse.html#parsing-arguments)。它解析了你给它的所有参数,所以没有什么可以放在args中。

例如,如果你跑步

parse_args

然后会打印script.py -z hello.zip -d world.txt foo bar

P.S。正如@ Michael0x2a在评论中指出的那样,2库已被弃用。看一下argparse库。

答案 1 :(得分:0)

因为args是处理后的剩余args。来自docs

  

parse_args()返回两个值:

     
      
  • 选项,一个包含所有选项值的对象 - 例如。如果   --file接受单个字符串参数,然后options.file将是用户提供的文件名,如果用户没有提供该选项,则为None
  •   
  • args,解析后剩余的位置参数列表   选项
  •