501- Enregistrement
Enregistrement des données du monitoring
Premier étape, enregistrement des données au format CSV. Les données seront enregistrées et écrasées comme une pile FIFO (First In, First Out). Ce qui veut dire que la première données entrée sera la première à sortir du fichier. On aura une mémoire tampon des données sur un certain nombres d'enregistrement.
Notre fichier CSV pourra être du format que l'on souhaitera grâce à l'utilisation de la classe csv.Dialect.
Voici le code:
import csv
import os
#Enregistrement des valeurs CPU
class PasswdDialect(csv.Dialect): #Config du fichier CSV
# Separateur de champ
delimiter = ";"
# Separateur de ''chaine''
quotechar = None
# Gestion du separateur dans les ''chaines''
escapechar = None
doublequote = None
# Fin de ligne
lineterminator = "\r\n"
# Ajout automatique du separateur de chaine (pour ''writer'')
quoting = csv.QUOTE_NONE
# Ne pas ignorer les espaces entre le delimiteur de chaine
# et le texte
skipinitialspace = False
nbval = 30 # nbrs d'enregistrements
fmon = path + "cpu.txt" # Fichier d enregistrement des valeurs
echelon = 5 #temps echantillonnage des mesures
path= '/home/pi/psutil/' #Modifier le chemin suivant votre installation
#lecture et ecriture des données
try:
file = open(fmon,"r")
a = []
b = []
reader = csv.reader(file,PasswdDialect())
row = reader.next()
for i in range(1,nbval):
row = reader.next()
a.append(row[1])
b.append(row[2])
file.close()
file = open(fmon,"wb")
writer = csv.writer(file,PasswdDialect())
writer.writerow(('Temps','cpu','temp'))
writer.writerow((echelon,usagecpu,cpu_temperature))
for i in range(2,nbval):
writer.writerow((i*echelon,a[(i-2)],b[(i-2)]))
file.close()
except:
file = open(fmon,"wb")
a = []
b=[]
writer = csv.writer(file,PasswdDialect())
writer.writerow(('Temps','cpu','temp'))
for i in range(1,nbval):
writer.writerow((i,i,i))
a.append((i*echelon))
b.append((i*echelon))
file.close()
Ce code doit être modifié en fonction des données que l'on veut enregistrer. J'ai intégré ce code à mon fichier de monitoring du raspberry.
Téléchargement du code source Ici
Mise à jour 05/04/2013
Créé avec HelpNDoc Personal Edition: Produire des aides en ligne pour les applications Qt