我在Python中编写了一个脚本,我已经添加了使用optparse的可选功能
>>python <script_name> -s <other options and args>
如果-s选项是第一个,则该函数可以正常工作,但如果稍后将其放在选项
中则不行>>python <script_name> <some options and values> -s <other options and args`>
这是代码摘要
def show(option, opt_str, value, parser):
(opts,args) = parser.parse_args(parser.rargs)
#do stuff (requires opts.host and opts.username)
def options():
parser = OptionParser()
parser.add_option("-d", dest="host",default="127.0.0.1",
help="IP Address of server, defaults to localhost")
parser.add_option("-U",default='user',dest="username",
help = 'Username')
parser.add_option("-s","--show", action='callback', callback=show,
help = 'Prints a list of possible values and allows the user to select a value ')
(options, args) = parser.parse_args()
return options
#main()
opts = options()
#do stuff
有没有办法在调用回调之前看到已解析的args?
我知道我可以让-s选项将bool设置为true,如下所示:
#main()
opts = options()
if opts.s:
show()
#do stuff