我发现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/