如何使用groovy从python脚本获取返回值

问题描述 投票:0回答:1

我有一个Python脚本放置在bitbucket位置。我的 python 文件中有如下代码

def healthCheck():
    print ("::healthCheck()::")
    
    while time.time() < timeout:
        healthy = True;
        
        # some logic is here
            
        if not healthy:
            print ("Sleeping for 5 seconds")
            time.sleep(5)
        else:
            break;
            
    return healthy

在groovy中我想存储这个返回值。返回的值将在我的下一步评估中需要。为了实现这一目标,我在我的代码中尝试了类似的事情

def cmd = url 'python ${bitbucket_location}/testPythonFile.py'
def proc = cmd.execute()
isDeadPodHenrietta = proc.text()

现在我的变量“cmd”为空。因此其余操作失败并给出空指针异常。即使我不确定这是否是存储脚本返回值的正确方法。请帮忙解决这个问题。

这个 groovy 脚本正在用于部署目的。 预先感谢。

python groovy xlrelease
1个回答
0
投票

这对我有用,我评论了一些更改。 看来 Python 错误没有被标记。

# Import time and set the timeout value.
import time
timeout = 1730342500

def healthCheck():
    print ("::healthCheck()::")
    healthy = True
    
    while time.time() < timeout:
        healthy = True;
        
        # some logic is here
            
        if not healthy:
            print ("Sleeping for 5 seconds")
            time.sleep(5)
        else:
            break;
            
    return healthy
    
# Call healthCheck here and print the return value as a string.
print str(healthCheck())

然后执行这个 Groovy 脚本,它会生成一个本地 py 文件并执行它:

new File("testPythonFile.py") << new URL("https://<your-bitbucket-url>/src/master/testPythonFile.py").getText()
println "python testPythonFile.py".execute().text

结果是

::healthCheck()::
True
© www.soinside.com 2019 - 2024. All rights reserved.