Parses & Formats integer file sizes to human readable file sizes.
To setup the project for development, run:
$ cd hfilesize/
$ pdm install
>>> from hfilesize import Format, FileSize
>>> FileSize('1k')
... 1000
>>> FileSize('1K')
... 1024
>>> FileSize('1kib')
... 1024
>>> FileSize('1K', default_binary=False, case_sensitive=False)
... 1000
>>> FileSize('1 kibibyte')
... 1024
>>> '{:d}'.format(FileSize(1024))
... '1024'
>>> '{:.02fH}'.format(FileSize(1024))
... '1 KB'
>>> '{:.02fHcv}'.format(FileSize(1024))
... '1 kilobyte'
>>> '{:.02fhs}'.format(FileSize(1000))
... '1 KB'
>>> '{:.02fhs^0}'.format(FileSize(1000))
... '1000 B'
>>> '{: >10.02fH}'.format(FileSize(1024))
... ' 1 KB'
-
case_sensitive
: Use 1024 for upper case and 1000 for lower case if casing exists, as is common in unix utilities, e.g. dd -
default_binary
: Default base if it is not clear what the unit is (i.e. if it is not 'mib' or 'mebibytes')
- format type:
[hH][size_format][^exponent]
h
: Base 1000H
: Base 1024
size_format
:c | cs | cv | e | ev | s | sv
c
: Commonly used case-sensitive suffixescs
: Commonly used abbreviated case-sensitive suffixescv
: Commonly used verbose case-sensitive suffixese
: IEC suffixesev
: IEC verbose suffixess
: SI suffixessv
: SI verbose suffixes
exponent
:integer
Inspired by:
Licensed under MIT.