小编典典

获取文件大小的人类可读版本?

all

从字节大小返回人类可读大小的函数:

>>> human_readable(2048)
'2 kilobytes'
>>>

这该怎么做?


阅读 118

收藏
2022-04-24

共1个答案

小编典典

通过简单的实现(使用 f-strings,因此 Python 3.6+)解决上述“需要库的任务太小”问题:

def sizeof_fmt(num, suffix="B"):
    for unit in ["", "Ki", "Mi", "Gi", "Ti", "Pi", "Ei", "Zi"]:
        if abs(num) < 1024.0:
            return f"{num:3.1f}{unit}{suffix}"
        num /= 1024.0
    return f"{num:.1f}Yi{suffix}"

支持:

  • 所有当前已知的二进制前缀
  • 负数和正数
  • 大于 1000 Yobibytes 的数字
  • 任意单位(也许你喜欢用 Gibibits 来计算!)

例子:

>>> sizeof_fmt(168963795964)
'157.4GiB'

弗雷德·西雷拉

2022-04-24