2011/12/13 Giampaolo Rodolà <g.rod...@gmail.com>:
> Come extra, per avere risultati leggibili, puoi usare questo:
>
> def bytes2human(n):
>    """
>    >>> bytes2human(10000)
>    '9.8K'
>    >>> bytes2human(100001221)
>    '95.4M'
>    """
>    symbols = ('K', 'M', 'G', 'T', 'P', 'E', 'Z', 'Y')
>    prefix = {}
>    for i, s in enumerate(symbols):
>        prefix[s] = 1 << (i+1)*10
>    for s in reversed(symbols):
>        if n >= prefix[s]:
>            value = float(n) / prefix[s]
>            return '%.1f%s' % (value, s)
>     return "0B"

C'e` un IndentationError nell'ultima riga :P
Inoltre i simboli corretti dovrebbero essere ('KiB', 'MiB', 'GiB',
'TiB', 'PiB', 'EiB', 'ZiB', 'YiB').
Infine, restituisce sempre "0B" per ogni valore di n < 1024.

Cheese,
©
-- 
Carlo Miron
Precisino Rompiballe Solution Architect™
_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python

Rispondere a