2011-08-22 79 views
0

我的代码部分看起来像:Python:无法获得通过'add_option'添加的选项列表?

parser.add_option("-h", "--help","-?", 
        action = "help", 
        help= """Print the help of the scipt""" 
       ) 

当我试图打印可用于脚本选项,它返回一个空数组。

optlist = [x.get_opt_string() for x in parser._get_all_options()[1:]] 
    print optlist 

打印optlist打印一个空数组 - > []。

我需要打印一个包含所有可用选项的数组。在这种情况下,存储值的数组为:-h,--help和 - ?

+1

是什么类型你'parser'对象? 'argparse'模块提供了自动生成的帮助和使用消息,因此您不需要添加这些消息 - > http://docs.python.org/dev/library/argparse.html – wim

+0

我无法让您的代码运行与'argparse'或'optparse' - 'argparse'没有'add_option'并且'optparse'死于“冲突的选项字符串” – Owen

回答

1

在Python 2.6.5中,optparse对象具有未记录的属性_short_opts和_long_opts。对于颠簸的列表

[x._short_opts + x._long_opts for x in parser._get_all_options()] 

使用join list of lists in python拼合列表

sum([x._short_opts + x._long_opts for x in parser._get_all_options()],[]) 
+1

以下划线为前缀的属性可能会在外部使用(它们可能会改变恕不另行通知,破坏你的代码) – wim