[Python] Numero to byte
Lorenzo Sutton
lsutton a libero.it
Mer 12 Gen 2011 11:11:52 CET
lordkrandel wrote:
> #On 11/01/2011 15.00, Lorenzo Sutton wrote:
> #> def bytesToHuman (b,factor=1024.):
> #> units = ['bytes', 'KB', 'MB', 'GB', 'TB', 'PB']
> #> for i in xrange (1,len (units)+1):
> #> if b< factor ** i or i>= len(units):
> #> return ('%.1f %s') % ((b/(factor **(i-1))),units[i-1])
> #
> # Che ne dici di un po' di magia
Eh eh.. ai limiti dell'offuscamento ;)
> # Dimmi se funziona
Certo che funziona.. molto carina.
> def f(
> bytes,
> factor=1024,
> labels=['', 'Ki', 'Mi', 'Gi', 'Ti', 'Pi'],
> precision=4
> ):
> for x,y in map(
> lambda x: (
> factor**(x[0]+1),
> ('%.' + str(precision) + 'lf %sB') % (bytes / factor**x[0], x[1])
> ),
> enumerate(labels)
> ):
> if (bytes< x) or (y == labels[-1]):
> return y
>
> # Test
> for x in range(16):
> y = 512.12*(10**x)
> print f(y)
>
Maggiori informazioni sulla lista
Python