File Attributes conversion

Chris Barker Chris.Barker at noaa.gov
Thu Mar 7 12:25:31 EST 2002


Sam Collett wrote:
> 
> > Actually, I usually use a few more cases so that I always get two
> > significant digits:  1.2k, 23k, 840k, 2.4M, etc.
> How would you do that then (maybe even to 2 decimal places, e.g. 24.52kb)?

You make sure the result of your division is a Float (Ah, how I long for
the "new division" to be standard!) and you use %f instead of %d

#!/usr/bin/env python


def ShowSize(raw):
    if raw < 3000:
        return "%db" % raw
    elif raw < 2000000:
        return "%.2fkb" % (raw / 1000.)
    elif raw < 2000000000L:
        return "%.2fMb" % (raw / 1000000.)
    else:
        return "%.2fGb" % (raw / 1000000000.)


print ShowSize(2567L)
print ShowSize(2567000L)
print ShowSize(256700000L)
print ShowSize(2567000000L)
print ShowSize(256700000000L)

And here are the results:

>>> execfile("junk.py")
2567b
2.57M
256.70M
2.57G
256.70G

-- 
Christopher Barker, Ph.D.
Oceanographer
                                    		
NOAA/OR&R/HAZMAT         (206) 526-6959   voice
7600 Sand Point Way NE   (206) 526-6329   fax
Seattle, WA  98115       (206) 526-6317   main reception

Chris.Barker at noaa.gov



More information about the Python-list mailing list