当前位置: 首页 > 面试题库 >

可重用的库以获得人类可读的文件大小?[关闭]

范宏大
2023-03-14
问题内容

关闭。 此问题不符合堆栈溢出准则。它当前不接受答案。

想改善这个问题吗? 更新问题,使其成为Stack Overflow的主题。

19天前关闭。

改善这个问题

Web上有各种片段,这些片段将为您提供从字节大小返回人类可读大小的功能:

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

但是是否有提供此功能的Python库?


问题答案:

通过简单的实现解决了上述“任务太小,需要库”的问题:

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

支持:

  • 所有当前已知的二进制前缀
  • 负数和正数
  • 大于1000 Yobibytes的数字
  • 任意单位(也许您想以吉比特为单位!)

例:

>>> sizeof_fmt(168963795964)
'157.4GiB'

弗雷德·西拉(Fred
Cirera)



 类似资料:
  • 问题内容: 给定文件大小(以字节为单位),我想使用 IEC(二进制)前缀 将其格式化为 3个 有效数字, 并带有结尾的零,例如1883954变为1.80M。 bash不支持浮点算术,因此我改用awk。问题是我不怎么保持尾随零。当前解决方案: (文件不是那么大,所以我不必考虑更大的单位。) 编辑:这还有另一个问题。请参阅下面的AdrianFrühwirth的评论。 问题答案: GNU Coreuti

  • 问题内容: 我用Python打开了一个8 MB的文件,因为我想批量更改各种类型的文件名。我仔细检查并将文件加载到字符串中,然后使用字符串方法replace替换了所有内容。然后我注意到只有一半的文件被替换了。好像Python没有完全打开文件。 我必须在Python的范围内发挥某种字符串大小限制或最大文件大小限制吗? 请参阅Python搜索中的代码并替换未正确替换的代码。 我已更改为建议的代码。缓冲区

  • 问题内容: 我试图弄清楚Java applet的类文件在做什么。用记事本或文本板打开它只会显示一堆乱码。 有什么方法可以将其纠缠成某种可读性的格式,以便我可以尝试找出它的作用吗? 环境==安装了带VS 2008的Windows。 问题答案: jd-gui是目前最好的反编译器。与日渐流行的JAD相比,它可以处理Java中的新功能。

  • 我试图让我的UI显示两个按钮,其中一个稍微重叠在另一个,在一个全幅卡的中间。因为堆栈的宽度只能与其未定位的子级相同,所以我添加了一个宽度为double.infinity的SizedBox的未定位子级,以便给我一个画布来放置按钮,但我不知道该放什么作为SizedBox的高度。理想情况下,无论用户是在手机上还是在平板电脑上,我都希望这个小部件能够适当地调整自己的大小,所以我宁愿将SizedBox的高度

  • 问题内容: 在我正在研究的Python项目中,我希望能够以格式 America / New_York 的“人类可读”时区名称(与系统本地时区相对应)显示给用户。我所看到的访问时区信息的每一段代码仅返回数字偏移量(-0400)或字母代码(EDT)或有时返回两者。是否有一些Python库可以访问此信息,如果没有,则可以将偏移量/字母代码转换为人类可读的名称? 如果对应于特定时区的名称不止一个,那么可以