IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Appeler une commande système depuis python et récupérer la sortie standard sous forme de string


Sujet :

Python

  1. #1
    Membre très actif
    Inscrit en
    Février 2006
    Messages
    707
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 707
    Par défaut 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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 718
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 718
    Par défaut
    Citation Envoyé par Battant Voir le message
    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
    Pour convertir bytes en str, il suffit d'appliquer .encode() et lire ou relire le how to.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. [XL-2010] Comment envoyer commande vers serveur Unix et récupérer la sortie standard
    Par zi0n3 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 24/05/2013, 16h52
  2. Récupérer stdout d'une commande système
    Par GLDavid dans le forum Ruby
    Réponses: 2
    Dernier message: 11/04/2007, 08h56
  3. Masquer une commande système dans python
    Par Mysti¢ dans le forum Général Python
    Réponses: 5
    Dernier message: 03/11/2006, 16h33
  4. Appeler une URL avec & depuis une ligne de commande
    Par Fritzoune dans le forum Shell et commandes GNU
    Réponses: 14
    Dernier message: 13/02/2006, 14h52
  5. Réponses: 2
    Dernier message: 02/01/2006, 10h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo