我正在使用Jython 2.1进行wsadmin脚本编写,并希望找到一种更好的解析命令行选项的方法。我现在正在这样做:
-> deploy.py foo bar baz
然后在脚本中:
foo = sys.arg[0]
bar = sys.arg[1]
baz = sys.arg[2]
但是想这样做:
-> deploy.py -f foo -b bar -z baz
optparse添加到python中。我在Jython 2.1中还有哪些其他选择?
答案 0 :(得分:2)
这样的事情怎么样:
args = sys.argv[:] # Copy so don't destroy original
while len(args) > 0:
current_arg = args[0]
if current_arg == '-f':
foo = args[1]
args = args[2:]
elif current_arg == '-b':
bar = args[1]
args = args[2:]
elif current_arg == '-z':
baz = args[1]
args = args[2:]
else:
print 'Unknown argument: %r' % args[0]
args = args[1:]
免责声明:未经任何方式测试。
答案 1 :(得分:2)
getopt库与Jython 2.1捆绑在一起。它不像解析模块的新参数那样花哨,但仍然比滚动自己的参数解析要好得多。
import getopt
getopt的文档:http://docs.python.org/release/2.1.1/lib/module-getopt.html
我在WebSphere Appserver 7.0.0.x下使用它。我看到你用websphere-6.1标记了这个问题 - 遗憾的是我现在没有WAS 6.1系统可以立即测试。
编辑:在WebSphere 6.1上验证; getopt存在。
答案 2 :(得分:1)
请注意,大多数库实际上都是简单的Python模块,您可以在Python发行版中的\ Lib下找到它们,因此通常一个简单的文件副本就会为您提供库。
在这种情况下,我将optparse.py(及其依赖项textparse.py)从Python 2.7复制到Jython 2.2,它似乎导入得很好。