Bonjour,
Je souhaiterais récupérer l'affichage d'une commande exécutée a l'aide de Popen, mais le problème c'est que l'affichage est très mauvais.
Exemple de l'affichage que je récupère lorsque j'exécute un ping :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
b'\r\n'
b"Envoi d'une requ\x88te 'ping' sur google.fr [216.239.59.104] avec 32 octets de donn\x82es\xff:\r\n"
b'R\x82ponse de 216.239.59.104\xff: octets=32 temps=48 ms TTL=55\r\n'
b'R\x82ponse de 216.239.59.104\xff: octets=32 temps=46 ms TTL=55\r\n'
b'R\x82ponse de 216.239.59.104\xff: octets=32 temps=46 ms TTL=55\r\n'
b'R\x82ponse de 216.239.59.104\xff: octets=32 temps=53 ms TTL=55\r\n'
b'\r\n'
b'Statistiques Ping pour 216.239.59.104:\r\n'
b' Paquets\xff: envoy\x82s = 4, re\x87us = 4, perdus = 0 (perte 0%),\r\n'
b'Dur\x82e approximative des boucles en millisecondes :\r\n'
b' Minimum = 46ms, Maximum = 53ms, Moyenne = 48ms\r\n'
b''
Comment faire pour avoir un affichage correct ?

Voici comment j'utilise la fonction Popen:
Le résultat est affiché dans une page web html.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
        p = Popen([commande, IP], stdout=PIPE)
        res = open("resultat.html",'w+')
        res.write("<html><body><h1> Vous avez demandé un " + commande + " vers " + IP + " </h1><br/>")
        while True:
            line = p.stdout.readline()
            res.write("<br/>" + str(line))
            if not line:    
                break
Merci de votre aide.