Bonjour,

Après une lecture du ping suivant la fonction ci dessous, la variable "reponse" lors de l'écriture dans fichier txt, j'ai l'erreur suivante :
Auriez-vous la solution car en python 3.4 cela fonctionne et je suis retourner en version 2.7 à cause de souci de compilation.
merci
cordialement

Erreur produite
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
Unicode Encode Error: 'ascii' codec can't encode character u'\xae' in position 18: ordinal not in range(128)

affichage en console correcte
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
Envoi d'une requête 'Ping'  192.168.0.13 avec 32 octets de données*:
Réponse de 192.168.0.13*: octets=32 temps<1ms TTL=128
Réponse de 192.168.0.13*: octets=32 temps<1ms TTL=128
Réponse de 192.168.0.13*: octets=32 temps<1ms TTL=128
Réponse de 192.168.0.13*: octets=32 temps<1ms TTL=128
 
Statistiques Ping pour 192.168.0.13:
    Paquets*: envoyés = 4, reçus = 4, perdus = 0 (perte 0%),
Durée approximative des boucles en millisecondes :
    Minimum = 0ms, Maximum = 0ms, Moyenne = 0ms
Pour voir pourquoi, j'ai placé la variable dans un tableau pour voir ce quelle donne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
[u"\r\nEnvoi d'une requ\xeate 'Ping'  192.168.0.13 avec 32 octets de donn\xe9es\xa0:\r\nR\xe9ponse de 192.168.0.13\xa0: octets=32 temps<1ms TTL=128\r\nR\xe9ponse de 192.168.0.13\xa0: octets=32 temps<1ms TTL=128\r\nR\xe9ponse de 192.168.0.13\xa0: octets=32 temps<1ms TTL=128\r\nR\xe9ponse de 192.168.0.13\xa0: octets=32 temps<1ms TTL=128\r\n\r\nStatistiques Ping pour 192.168.0.13:\r\n    Paquets\xa0: envoy\xe9s = 4, re\xe7us = 4, perdus = 0 (perte 0%),\r\nDur\xe9e approximative des boucles en millisecondes :\r\n    Minimum = 0ms, Maximum = 0ms, Moyenne = 0ms\r\n"]
0
Partie du code
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
20
21
22
23
24
25
26
27
28
29
 
#! /usr/bin/python
#_*_ coding:utf-8 _*_
# Python 2.7.7
# ------------------------------------------
# Analyse de ping
# ------------------------------------------
 
def analyse_ping():
    import socket,subprocess,os,sys
    ip = socket.gethostbyname(socket.gethostname())
    encodage="cp850"            
    # envoie un ping à l'ordinateur d'adresse ip, et retourne la réponse sous forme d'une liste de lignes unicode """  
    commande = ["ping ", ip]
    try:
        os.system('echo Analyse en cours...')
        out, _ = subprocess.Popen(commande, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, shell=False).communicate()
    except (ValueError, OSError) as err:
        return ("Erreur: %s" % (err.args[0],)).decode(encodage)
 
    reponse = out.decode(encodage)
 
    # importe le résultat dans fichier txt
    with open('ping.txt', 'w') as fichier:
        fichier.write(reponse)
 
 
 
    txtping.close()