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

在Python中转换文件大小的更好方法

皇甫俊雅
2023-03-14
问题内容

我正在使用一个读取文件并返回其大小(以字节为单位)的库。

然后,该文件大小将显示给最终用户。使他们更容易理解它,我明确的文件大小转换为MB通过将其除以1024.0 * 1024.0。当然可以,但是我想知道在Python中还有更好的方法吗?

更好的是,我的意思是也许一个stdlib函数可以根据我想要的类型操纵大小。就像我指定的一样MB,它会自动将其除以1024.0 * 1024.0。这些线路上有一些东西。


问题答案:

有hurry.filesize,它将以字节为单位,如果有的话,将做出一个漂亮的字符串。

>>> from hurry.filesize import size
>>> size(11000)
'10K'
>>> size(198283722)
'189M'

或者,如果您希望1K == 1000(这是大多数用户的假设):

>>> from hurry.filesize import size, si
>>> size(11000, system=si)
'11K'
>>> size(198283722, system=si)
'198M'

它也具有IEC支持(但是没有记录):

>>> from hurry.filesize import size, iec
>>> size(11000, system=iec)
'10Ki'
>>> size(198283722, system=iec)
'189Mi'

因为它是由Martijn Faassen令人敬畏的代码编写的,所以代码小巧,清晰且可扩展。编写自己的系统非常容易。

这是一个:

mysystem = [
    (1024 ** 5, ' Megamanys'),
    (1024 ** 4, ' Lotses'),
    (1024 ** 3, ' Tons'), 
    (1024 ** 2, ' Heaps'), 
    (1024 ** 1, ' Bunches'),
    (1024 ** 0, ' Thingies'),
    ]

像这样使用:

>>> from hurry.filesize import size
>>> size(11000, system=mysystem)
'10 Bunches'
>>> size(198283722, system=mysystem)
'189 Heaps'


 类似资料:
  • 问题内容: 我正在学习python并进行练习: 字符串。创建一个函数,该函数将返回另一个与输入字符串相似的字符串,但大小写取反。例如,输入“ Mr. Ed”将得到“ mR。eD”作为输出字符串。 我的代码是: 有没有更好的解决方法?我的解决方案似乎很奇怪。 问题答案: 您的解决方案非常好。但是,您不需要三个分支,因为在upper不适用时将返回str。 使用生成器表达式,可以将其简化为:

  • 本文向大家介绍在Python中使用swapCase()方法转换大小写的教程,包括了在Python中使用swapCase()方法转换大小写的教程的使用技巧和注意事项,需要的朋友参考一下  swapCase()方法返回所有可大小写,基于字符大小写交换字符串的一个副本。 语法 以下是swapCase()方法的语法: 参数     NA 返回值 此方法返回其中所有基于大小写字符交换字符串的一个副本。 例子

  • 问题内容: 如何将PHP 函数的输出转换为兆字节,千字节等格式? 喜欢: 如果大小小于1 MB,则以KB为单位显示大小 如果介于1 MB-1 GB之间,则以MB为单位显示 如果更大-以GB为单位 问题答案: 这是一个示例:

  • 问题内容: 我如何将一个小的Endian二进制文件转换为大Endian二进制文件。我有一个用C编写的二进制二进制文件,我正在用Java的DataInputStream读取此文件,该文件以大端字节格式读取。我也看过ByteBuffer类,但不知道如何使用它来获得我想要的结果。请帮忙。 非常感谢 问题答案: 谷歌搜索了很多之后,我发现了一个具有SwappedDataInputStream类的Apach

  • 本文向大家介绍python查看zip包中文件及大小的方法,包括了python查看zip包中文件及大小的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了python查看zip包中文件及大小的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的Python程序设计有所帮助。

  • 问题内容: 我在HDFS目录中有一堆小文件。尽管文件 量 较小, 但是每个文件的处理时间却很大 。也就是说,一个文件(它是的默认拆分大小)甚至需要几个小时才能处理。 我需要做的是 减小拆分大小 ,以便我可以 利用更多的节点 来完成工作。 所以问题是,怎么可能通过说来分割文件?我需要实现我自己和这一点,或有任何参数设置?谢谢。 问题答案: 可以针对每个作业单独设置的参数。不要更改, 因为这对于HDF