Python is beautiful (again)
J’aime bien Python. Mon utilisation de ce langage est fortement axé sur l’écriture de petits scripts pour décortiquer les traces en console d’autres d’applications. Et pour ça, Python est très fort. Déjà parce qu’on peut commencer dans l’interpréteur interactif et ensuite mettre le code dans un fichier *.py pour le conserver. Ensuite, parce qu’il y a des écritures très efficaces pour faire cela. Dans cet article, je vous montre mon dernier script pour dire une nouvelle fois que « Python is beautiful ».
Pour commencer, voici la trace d’exécution. Il a appairage de deux périphériques au début, puis deux threads font des ON et des OFF, tandis qu’un troisième thread traite les communications et affiche les temps de traitement :
0 SwitchDeviceListener.deviceRegistered() OFF SwitchDeviceListener.deviceRegistered() OFF 110 78 ON 390 ON 78 OFF 437 OFF 79 ON 421 ON 94 OFF 421 OFF 95 ON 405 [...]
L’objectif ici est de trouver les temps minimum, maximum et moyen. Pour cela, les listes marchent à merveille :
- On crée une liste avec toutes les lignes du fichier.
- On en dérive une liste ne contenant que les éléments qui ne sont pas dans une liste d’éléments à exclure grâce à
not in. - On transforme les éléments de type
stringenint. - On utilise les opérateurs adaptés pour récupérer les valeurs recherchées.
from statistics import mean, median
# Read file content
f = open("C:\\Users\\pgradot\\Desktop\\data.txt", "r")
lines = f.readlines()
f.close()
# Clean content
to_exclude = ["SwitchDeviceListener.deviceRegistered()\n", "ON\n", "OFF\n"]
cleaned = [line for line in lines if line not in to_exclude]
print(cleaned)
# Convert to numbers
numbers = list(map(int, cleaned))
print(numbers)
# Print statistics
print("Min = ", min(numbers))
print("Max = ", max(numbers))
print("Mean = ", mean(numbers))
print("Median = ", median(numbers))
Le script nous donne les valeurs recherchées :
Min = 0 Max = 578 Mean = 272.37404580152673 Median = 235.0
Le module statistics a été ajouté en version 3.4 de Python.
C’est beau, on est contents 🙂



Joli travail
J’aimeJ’aime
15 décembre 2014 à 11:00
Merci 😉
J’aimeJ’aime
15 décembre 2014 à 11:32