如何在 python 2.5 中将 subprocess.popen.object 转换为普通字符串?

How to convert subprocess.popen.object to normal string in python 2.5?

我正在执行下面的代码,它工作正常,但它给出的输出是 "subprocess.Popen object at 0x206"

import sys
from subprocess import Popen 
var1= "I am testing"
Process=Popen('/home/tester/Desktop/test.sh %s' % (str(var1),), shell=True)
print Process

returns: subprocess.Popen object at 0x206

另外 test.sh 只是回应给定的变量,它所拥有的是:

#!/bin/bash 
echo  
echo 

不幸的是,我无法将我的应用程序 python 版本从 2.5 升级,因此无法使用当前的子进程功能,例如 check_ouput,我正在寻找可以转换给定输出的解决方案变成正常的字符串?

您需要将 stdout 和 stderr 传递给 Popen 并读取它们:

proc = subprocess.Popen('/home/tester/Desktop/test.sh %s' % (str(var1),), stderr=subprocess.PIPE, stdout=subprocess.PIPE, shell=True)
out, err = proc.communicate()  # Read data from stdout and stderr

print out
print err