2017-01-31 7 views
0

Я выполнение ниже кода, который работает нормально, но Ouput дает это как «subprocess.Popen объекта в 0x206»Как преобразовать subprocess.popen.object в обычную строку в python 2.5?

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, следовательно, не в состоянии использовать текущие функции подпроцесса, такие как check_ouput, я искал решение, с помощью которого я ча n преобразует данный вывод в обычную строку?

+0

Потому что это то, что 'Process' есть. Если вы хотите взаимодействовать с ним, это объект с методами, например. для возврата вывода инкапсулированного процесса. – tripleee

ответ

1

Вам необходимо пройти стандартный вывод и стандартный поток ошибок в 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 
+0

yup, вот чего не хватало. – pylearner

Смежные вопросы