我发现hurry.filesize非常有用,但它不提供十进制输出?
例如:

print size(4026, system=alternative) gives 3 KB.

但后来,当我把所有的值相加时,我得不到确切的和。例如,hurry.filesize的输出为4个变量,每个值为3。如果我把它们全部加起来,我就得到15的输出。
我正在寻找另一种方法:hury.filesize,也可以得到十进制的输出。

最佳答案

这并不难实现:

suffixes = ['B', 'KB', 'MB', 'GB', 'TB', 'PB']
def humansize(nbytes):
    i = 0
    while nbytes >= 1024 and i < len(suffixes)-1:
        nbytes /= 1024.
        i += 1
    f = ('%.2f' % nbytes).rstrip('0').rstrip('.')
    return '%s %s' % (f, suffixes[i])

示例:
>>> humansize(131)
'131 B'
>>> humansize(1049)
'1.02 KB'
>>> humansize(58812)
'57.43 KB'
>>> humansize(68819826)
'65.63 MB'
>>> humansize(39756861649)
'37.03 GB'
>>> humansize(18754875155724)
'17.06 TB'

关于python - Python库从字节计算人类可读的文件大小?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14996453/

10-09 18:30