我正在编写一个脚本,我想要一个带有值的--host开关,但是如果没有指定--host开关,我想要选项解析失败。我似乎不知道该怎么做。文档似乎只指定如何使参数值成为强制性的,而不是开关本身。 最佳答案 一种使用optparse的方法,可以在缺少开关时提供友好的输出:#!/usr/bin/envrubyrequire'optparse'options={}optparse=OptionParser.newdo|opts|opts.on('-f','--fromSENDER','usernameofsender')do|sender|op
我正在编写一个小的python脚本来从多个服务器或单个服务器获取统计信息,并且我正在使用OptionParser来解析命令行输入。#!/usr/bin/pythonimportsysfromoptparseimportOptionParser...parser.add_option("-s","--server",dest="server",metavar="SERVER",type="string",help="server(s)togatherstats[default:localhost]")...我的目标是能够做类似的事情#test.py-sserver1-sserver2它会
我的Python脚本(用于待办事项列表)是从命令行启动的,如下所示:todo[options][command-options]有些选项不能一起使用,例如todoadd--pos=3--end"AskStackoverflow"将指定列表的第三个位置和末尾。同样todolist--brief--informative会使我的程序混淆为简短或信息丰富。因为我想有一个相当强大的选项控制,这样的情况会很多,以后肯定会出现新的。如果用户传递了错误的选项组合,我想提供一条信息性消息,最好连同optparse提供的使用帮助一起提供。目前我用一个if-else语句来处理这个问题,我发现它非常丑陋和糟
在python的OptionParser,如何指示它忽略提供给方法parse_args的未定义选项?例如我只为我的OptionParser实例定义了选项--foo,但我用列表调用parse_args:['--foo','--bar']我不在乎它是否会将它们从原始列表中过滤掉。我只想忽略未定义的选项。我这样做的原因是因为我正在使用SCons的AddOption接口(interface)来添加自定义构建选项。但是,其中一些选项指导目标的声明。因此,我需要在脚本的不同点将它们从sys.argv中解析出来,而无需访问所有选项。最后,顶层的SconsOptionParser将捕获命令行中所有未定
在python的OptionParser,如何指示它忽略提供给方法parse_args的未定义选项?例如我只为我的OptionParser实例定义了选项--foo,但我用列表调用parse_args:['--foo','--bar']我不在乎它是否会将它们从原始列表中过滤掉。我只想忽略未定义的选项。我这样做的原因是因为我正在使用SCons的AddOption接口(interface)来添加自定义构建选项。但是,其中一些选项指导目标的声明。因此,我需要在脚本的不同点将它们从sys.argv中解析出来,而无需访问所有选项。最后,顶层的SconsOptionParser将捕获命令行中所有未定
我正在尝试optparse,这是我的初始脚本。#!/usr/bin/envpythonimportos,sysfromoptparseimportOptionParserparser=OptionParser()usage="usage:%prog[options]arg1arg2"parser.add_option("-d","--dir",type="string",help="Listofdirectory",dest="inDir",default=".")parser.add_option("-m","--month",type="int",help="Numericvalu
我正在尝试为我在Sphinx中的项目编写文档,每当Sphinx在我的模块中遇到OptionParser时,它都会给我:sphinx-build:error:nosuchoption:-b我认为这是不可能的,所以我写了一个简单的模块来检查这个:fromoptparseimportOptionParser"""somecommenthere"""parser=OptionParser(conflict_handler='resolve')parser.add_option('','--force',action='store_true',dest='force',default=False
我正在尝试对一些看起来像这样的代码进行单元测试:defmain():parser=optparse.OptionParser(description='Thistooliscool',prog='cool-tool')parser.add_option('--foo',action='store',help='Thefoooptionisself-explanatory')options,arguments=parser.parse_args()ifnotoptions.foo:parser.error('--foooptionisrequired')print"Yourfoois%s
在以下脚本中,短选项按预期工作,长选项则不然:#!/usr/bin/envrubyrequire'optparse'optparse=OptionParser.newdo|opts|opts.on('-h','--help','Displaystandardhelp')doputsoptsendopts.on('-H','--Help','Displayotherhelp')doputs'Help!'endendoptparse.parse!运行结果如下:$./test-hUsage:t[options]-h,--helpDisplaystandardhelp-H,--HelpDisp
我正在使用Ruby的OptionParser(require'optparse')处理一个可以为true或false的“详细”选项。它在代码中是这样的:parser.on('-v','--[no-]verbose','Verbosemode')do|v|self.verbose=vend我支持在环境变量中指定选项(我将其内容添加到ARGV前面),因此可以在该环境变量中设置详细模式,并在命令行中使用--no-verbose覆盖它。但是,我找不到用短选项覆盖它的方法。我试过这些但没有成功:-v--v0-v=0我在https://github.com/ruby/ruby/blob/trunk