[Python] Ricavare ultime cifre

Manlio Perillo manlio_perillo a libero.it
Gio 26 Nov 2009 00:05:14 CET


Federico ha scritto:
> Salve a tutti, ho un piccolo problema con dati di tipo float. Dovrei
> recuperare le ultime cifre del modulo time(). 

Per farci cosa?

Tieni conto, comunque, che la funzione time di Python restituisce un
float per uniformità, ma l'API del sistema operativo restituisce il
numero di secondi dalla Epoca, ed il numero di
millisecondi/microsecondi (o altro, a seconda dell'API).

Su sistemi POSIX, ad esempio:
http://www.opengroup.org/onlinepubs/009695399/functions/gettimeofday.html

Ecco un pezzo di codice che fa il lavoro.
NOTA che potrebbe non essere portabile, dato che le dimensioni di time_t
e suseconds_t potrebbero variare in base alla piattaforma:

from ctypes import *

class timeval(Structure):
    _fields_ = [ ('tv_sec', c_long),
                 ("tv_usec", c_long) ]

libc = CDLL('libc.so.6')

tv = timeval()
libc.gettimeofday(pointer(tv), None)

print tv.tv_sec
print tv.tv_usec


Al momento di scrivere questo messaggio, ottengo:
1259190076
993246


In questo contesto, non riesco proprio ad immaginare cosa tu voglia fare
con le ultime due cifre decimali del valore:
tv.tv_sec + tv.tv_usec / 1000000.


> [...]


Ciao  Manlio


Maggiori informazioni sulla lista Python