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

如何在python 2.5中将subprocess.popen.object转换为普通字符串?,python,subprocess,python-2.5,Python,Subprocess,Python 2.5,我正在执行下面的代码,该代码工作正常,但它给出的输出为“0x206处的subprocess.Popen对象” 返回:0x206处的subprocess.Popen对象 另外test.sh只是回显给定变量,它所拥有的是: #!/bin/bash echo $1 echo $2 不幸的是,我无法从2.5升级我的应用程序python版本,因此无法使用当前的子流程功能,例如check_ouput,我正在寻找一种解决方案,通过它我可以将给定的输出转换为普通字符串 您需要将stdout和stderr传

我正在执行下面的代码,该代码工作正常,但它给出的输出为“0x206处的subprocess.Popen对象”

返回:0x206处的subprocess.Popen对象

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

#!/bin/bash 
echo $1 
echo $2

不幸的是,我无法从2.5升级我的应用程序python版本,因此无法使用当前的子流程功能,例如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

因为这就是过程。如果你想与它交互,它是一个对象,有一些方法,例如返回封装过程的输出。是的,这就是缺少的。
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