2

我看到了这个页面: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.zipnameoptions.dictionary时没关系,但没有任何内容进入 args,为什么?谢谢。

4

2 回答 2

4

args返回值parse_args是“处理完所有选项后剩余的位置参数”(http://docs.python.org/2/library/optparse.html#parsing-arguments)。它解析了你给它的所有参数,所以没有任何东西可以放入 args。

例如,如果您运行,

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

然后2将被打印。

PS 正如@Michael0x2a 在评论中指出的那样,该optparse库已被弃用。看看argparse库。

于 2013-10-29T19:21:25.943 回答
0

因为args是处理后的剩余参数。从文档

parse_args() 返回两个值:

  • options,一个包含所有选项值的对象——例如,如果 --file 采用单个字符串参数,则 options.file 将是用户提供的文件名,如果用户没有提供该选项,则为 None
  • args,解析选项后剩余的位置参数列表
于 2013-10-29T19:22:29.307 回答