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

时间:2017-01-31 17:23:19

标签: python subprocess python-2.5

我正在执行正常工作的代码,但它提供的输出是" subprocess.Popen对象在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

返回:subprocess.Popen object at 0x206

同样test.sh只是给出了它所有变量的回声:

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

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

1 个答案:

答案 0 :(得分:1)

你需要将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