我有以下问题。在一个groovy编程中,我启动一个启动子进程的python程序。此子进程的输出将读入变量。 (os是ubuntu)
git = subprocess.Popen(args, stdout = subprocess.PIPE, env=environ)
data = git.stdout.read();
但变量总是空的,我不知道为什么。 (在它运行的shell中启动Python)
答案 0 :(得分:0)
几乎可以肯定输出是你没有捕获的stderr,你需要添加stderr = subprocess.PIPE
并使用communicate
但是如果你使用的是python> = 2.7那么{{1}最好使用,任何非零退出状态都会引发check_output
:
CalledProcessError
答案 1 :(得分:0)
试试这个:
git = subprocess.Popen(args, stdout=subprocess.PIPE, stderr=subprocess.PIPE, env=environ)
data, err = git.communicate()
print(data.decode('utf-8'))
print(err.decode('utf-8'))