[Python] Numero to byte

lordkrandel lordkrandel a gmail.com
Mer 12 Gen 2011 14:26:01 CET


def f( bytes, factor, labels, precision ):
    for i, label in enumerate(labels,1):
        if (bytes < factor ** i) or (label == labels[-1]):
            return '%.*lf %s' % (precision, bytes / factor ** (i-1), label)

Dipende a cosa ti serve. Se è solo per 1024 e per i file, quella 
di Django va benissimo, ma se devi convertire i millimetri in
Kilometri allora dovresti fotocopiarne un'altra.

On 12/01/2011 13.59, Marcello wrote:
> Massi`,
> pero` il codice qui (cito Nicola, 6a mail di questo thread)
> http://code.djangoproject.com/browser/django/trunk/django/template/defaultfilters.py#L794
> lo trovo piu` leggibile.
> (Esplicito e` meglio che implicito ecc... )
> 
> Opinioni personali, eh :)
> 
> 
> On Wed, Jan 12, 2011 at 1:54 PM, Andrea Ambu<andreambu a gmail.com>  wrote:
>> Pythonese
>>
>> def human_from_bytes(bytes, factor=1024., labels=['B', 'KiB', 'MiB', 'GiB',\
>>                                                   'TiB', 'PiB'], precision=2):
>>         index = 0
>>         while 1. * bytes / factor**index>  factor and index<  len(labels)-1:
>>                 index += 1
>>         return ('%.*lf %s') % (precision, 1.*bytes/factor**index, labels[index])
>>
>>
>>
>> --
>> Andrea
>> _______________________________________________
>> Python mailing list
>> Python a lists.python.it
>> http://lists.python.it/mailman/listinfo/python
>>
> _______________________________________________
> Python mailing list
> Python a lists.python.it
> http://lists.python.it/mailman/listinfo/python
> 


-- 
Wyrmskull


Maggiori informazioni sulla lista Python