[Python] Problemi con modulo time e dizionari
Massimo Capanni
massimo.capanni a gmail.com
Lun 19 Ago 2013 15:04:28 CEST
Salve a tutti,
mi sono imbattuto in uno strano problema e non capisco dove stia sbagliando.
In sintesi:
sto sviluppando un piccolo programma che controlla lo stato della memoria
RAM di un sistema operativo, schedulato ogni tot minuti.
Ho creato un dizionario dove ho come chiavi il tempo attuale rilasciato da
time.time() e come valore la memoria ram occupata dal sistema (valore
ottenuto con i relativi moduli di psutils).
I dati memorizzati in questo dizionario li salvo e li recupero ciclicamente
in un file creato con il modulo shelve.
E fin qui i test sono andati bene.
Poi ho pensato: voglio che ogni 100 valori registrati lo script mi scriva
l'ora e il valore massimo raggiunto della RAM in un file di testo.
Mi sono scritto cosė una funzione per calcolare il valore massimo in un
dizionario (forse ci sono altri metodi, ma al momento ho reinventato la
ruota per esercizio ...)
def max_dict(d):
v_max = 0
k_max = 0
for i in d.keys():
if d[i] > v_max:
v_max = d[i]
k_max = i
return k_max, v_max
e poi scrivevo i due valori ottenuti nel file di testo, convertendo la
chiave rappresentante il valore espresso in secondi con time.localtime() e
formattando i valori ottenuti.
Purtroppo mi sono reso conto che dopo l'elaborazione dei dati nella
funzione max_dict(), i valori relativi alla data e ora sono completamente
sballati, come se max_dict() operasse qualche modifica.
Cosė invece di ottenere data e ora di oggi ottengo:
2003115192256 1018.6 MB
2003115192256 1018.6 MB
2003115192256 1018.6 MB
2003115192256 1018.6 MB
2003115192256 1018.6 MB
200311785544 1018.7 MB
200311785544 1018.7 MB
2006730161944 1.1 GB
2006730161944 1.1 GB
Dove sto sbagliando secondo voi?
.m
.Massimo .Capanni
σπευδε βραδεως
-------------- parte successiva --------------
Un allegato HTML č stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20130819/4f585b94/attachment.html>
Maggiori informazioni sulla lista
Python