我看到了这个页面: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 时,没关系,但为什么?感谢。
答案 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,解析后剩余的位置参数列表 选项