Appeler une commande système depuis python et récupérer la sortie standard sous forme de string
Bonjour,
J'essaie d'appeler une commande externe depuis python. Malheureusement, au lieu de me retourner une chaine de caractère on me retourne des bythe
voici ma foncion qui est cencé traitere les commande système
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| [
# code de battant
import subprocess
def runcommand (command) :
"""
code extrait de :
https://docs.python.org/3.5/library/subprocess.html
http://stackoverflow.com/questions/2804543/read-subprocess-stdout-line-by-line """
output = ""
proc = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE)
for line in iter(proc.stdout.read,''):
output += line
return output |
Dans mon programme, je cherche à n'exécter une deuxième commande que si la première commande retourne un résultat
Code:
1 2 3 4
|
output1 = runcommand(commandde 1) # cette commande contient des pipe |
if output1 != "" :# la commande a retoruné quelque chose
runcommand("grep "{0}"".format(output1 |
Resutat actuel : les foncions qui appelle les commandes ne retournent que des byte.
Question : comment faire pour récupérer des scring ?
Avez-vous déjà utiliser python pour appeler des commande système et traiter des réultats. Si voui, comment avez-vous fait ?
Merci pour votre aide
Salutations