如何在 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
我正在执行下面的代码,它工作正常,但它给出的输出是 "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