我正在执行正常工作的代码,但它提供的输出是" 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,我正在寻找一种解决方案,通过它我可以将给定的输出转换为普通的字符串?
答案 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