Python 使用usage.Options检查命令行参数
我正在使用usage.Options解析和检查命令行参数Python 使用usage.Options检查命令行参数,python,parameters,twisted,Python,Parameters,Twisted,我正在使用usage.Options解析和检查命令行参数 #!/usr/bin/python from twisted.python import usage import sys class Options(usage.Options): """ Defines the default input parameters """ optParameters = [ ["param", "p", 1, "Int Parameter"
#!/usr/bin/python
from twisted.python import usage
import sys
class Options(usage.Options):
"""
Defines the default input parameters
"""
optParameters = [
["param", "p", 1, "Int Parameter", int],
]
if __name__ == "__main__":
options = Options()
try:
options.parseOptions()
except Exception, e:
print '%s: %s' % (sys.argv[0], e)
print '%s: Try --help for usage details.' % (sys.argv[0])
sys.exit(1)
else:
if options['param'] < 0 or options['param'] > 10:
print "param out of the range [0,10]"
sys.exit(1)
#/usr/bin/python
从twisted.python导入用法
导入系统
类选项(用法.选项):
"""
定义默认输入参数
"""
OPT参数=[
[“param”,“p”,1,“Int参数”,Int],
]
如果名称=“\uuuuu main\uuuuuuuu”:
选项=选项()
尝试:
options.parseOptions()
除例外情况外,e:
打印“%s:%s%”(sys.argv[0],e)
打印“%s:请尝试--有关用法详细信息的帮助”。%(sys.argv[0])
系统出口(1)
其他:
如果选项['param']<0或选项['param']>10:
打印“参数超出范围[0,10]”
系统出口(1)
我不知道如何检查输入param
的值是否是一个数字。如果用户意外插入了一封信,他会收到以下信息:
参数类型强制失败:基为的int()的文本无效
10:‘d’
为什么不使用optpass
from optparse import OptionParser
options, args = parser.parse_args()
def args():
parser = OptionParser(usage='usage: %prog [options]', version='%prog 1.0.0')
parser.add_option(.....)
return parser
更新:
你可以吃这样的东西。添加并替换所需的所有内容:
class Main:
def __init__(self):
parser = self.get_arg()
self.set_arg(parser)
def set_arg(self, parser):
options, args = parser.parse_args()
if len(sys.argv) == 1:
print 'Error: Usage: python %s <options>' % sys.argv[0]
sys.exit()
input_file = options.input_file
flag = options.flag
def get_arg(self):
parser = OptionParser(usage='usage: %prog [options]', version='%prog 1.1.0')
parser.add_option('-i', '--input-file', action='store', type='string', dest='input_file', default=None,
help='Input file.')
parser.add_option('-f', '--flag', action='store_true', dest='flag', default=False,
help='A flag in your app')
return parser
if __name__ == '__main__':
Main()
主类:
定义初始化(自):
parser=self.get_arg()
self.set_arg(解析器)
def set_参数(自身,解析器):
选项,args=parser.parse_args()
如果len(sys.argv)==1:
“打印”错误:用法:python%s“%sys.argv[0]
sys.exit()
输入文件=选项。输入文件
flag=options.flag
def get_参数(自身):
parser=OptionParser(用法='用法:%prog[options]',版本='%prog 1.1.0')
parser.add_选项('-i','-input file',action='store',type='string',dest='input_file',default=None,
help='Input file'。)
parser.add_选项('-f','-flag',action='store_true',dest='flag',default=False,
help='A应用程序中的标志')
返回解析器
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
Main()
如何使用OptionParser重现上述示例?感谢示例type='string'
必须是type='int'