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 σπευδε βραδεως
_______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python