python3子进程没有输出

时间:2015-07-16 08:38:37

标签: python groovy subprocess

我有以下问题。在一个groovy编程中,我启动一个启动子进程的python程序。此子进程的输出将读入变量。 (os是ubuntu)

git = subprocess.Popen(args, stdout = subprocess.PIPE, env=environ)
data = git.stdout.read(); 

但变量总是空的,我不知道为什么。 (在它运行的shell中启动Python)

2 个答案:

答案 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'))