从Groovy脚本调用python类的方法

时间:2019-03-25 13:13:19

标签: python bash groovy

我想从groovy脚本执行我的python类的方法。 此方法有两个参数。

当我从终端执行此命令时: python -c'导入Myclass; Myclass.method(“ param1”,“ param2”)'正常工作。

我使用以下常规脚本代码:

def cmd = "cd /path/to/the/folder && python -c 'import Myclass; Myclass.method(param1,param2)'"
def proc = ["/bin/sh", "-c", cmd].execute()
proc.waitFor()
println "return code: ${proc.exitValue()}"
println "stderr: ${proc.err.text}"
println "stdout: ${proc.in.text}"

当我想在groovy脚本中执行相同的操作时,我在参数NameError上出错:NameError:未定义名称'param1'。

你知道为什么吗?

最诚挚的问候

1 个答案:

答案 0 :(得分:0)

在终端中执行脚本时,使用的是字符串文字"param1", "param2" ,而不是未定义的变量param1, param2 。由于您已经使用了单引号和双引号,因此应在反引号旁加上反斜杠:

def cmd = "cd /path && python -c 'import Myclass; Myclass.method(\"param1\", \"param2\")'"

或者,只需使用三引号:

def cmd = '''cd /path && python -c 'import Myclass; Myclass.method("param1", "param2")' '''