2017-01-31 3 views
0

J'exécute le code ci-dessous qui fonctionne très bien, mais le ouput donne est comme « objet subprocess.Popen à 0x206 »Comment convertir subprocess.popen.object en chaîne normale dans 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 

retours: subprocess.Popen object at 0x206

également test.sh variables vient de donner tout ce qu'il est echos ayant est:

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

Malheureusement je ne peux pas mettre à jour ma version de python d'application de 2,5 ne sont donc pas en mesure d'utiliser les fonctions de sous-processus actuels tels que check_ouput, je suis à la recherche d'une solution par laquelle je ca n convertir la sortie donnée en chaîne normale?

+0

Parce que ce 'processus' est. Si vous voulez interagir avec, c'est un objet avec des méthodes, par ex. renvoyer la sortie du processus encapsulé. – tripleee

Répondre

1

Vous devez passer stdout et stderr à Popen et de les lire:

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, c'est ce qui manquait. – pylearner