下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922
论坛 >编程语言 >Python实现文件大小输出

Python实现文件大小输出

spring发布于 2017-06-15 10:04查看:853回复:2

     数据库中存储时,使用 Bytes 更精确,可扩展性和灵活性都很高。
  输出时,需要做一些适配。
  1. 注意事项与测试代码
  1.需要考虑 sizeInBytes None 的场景。
  2.除以 1024.0 而非 1024,避免丢失精度。
  实现的函数为 getSizeInMb(sizeInBytes),通用的测试代码为:

1497492194756925.png

      2. MB 为单位输出 -- 返回 float
  通常,电子书的大小在 1 - 50MB 之间,输出时统一转为 MB 是不错的选择。
  弊端:
  1.输出精度过高,比如 10240000 Bytes 计算结果为 10240000 -> 9.765625
  2.文件大小有限制,小于 1 MB G 级数据不适合该方式展示。
  优势:
  1.适合于用返回值参与计算。

     3. MB 为单位保留 1 位小数 -- 返回 str
  处于精度问题考虑,可以选择保留 1 位小数。
  def getSizeInMb(sizeInBytes):
  return '%.1f' % ((sizeInBytes or 0) / (1024.0*1024.0), ) # use 1-dimension tuple is suggested
  返回值建议写成 '%.1f' % (number,) 而非 '%.1f' % (number)
  二者均能正确执行,但后者容易被误判为执行只有一个参数 number 的函数,导致难以判断的错误。
  3. MB 为单位保留至多 1 位小数 -- 返回 str
  大多数操作系统一般展示至多 1 位小数。

       4. 自动选择最佳单位

      算法说明:
  1. 从英语语法角度,只有 1 使用单数形式。其他 0/小数 均使用复数形式。涉及 bytes 级别。
  2. 精度方面,KB 及以上级别,保留 1 位小数。bytes 保留至多 1 位小数。
  这种处理规则,不适合于小数十分位为 0 的情况,比如 10.0 bytes10.01 bytes。输入结果均为 10 bytes
  其他情况下,精度均不存在问题。
  测试数据与结果如下图:

       以上内容给大家介绍了基于Python实现文件大小输出的相关知识,希望本文分享对大家有所帮助。

收藏(0)0
查看评分情况

全部评分

此主贴暂时没有点赞评分

总计:0

回复分享

版主推荐

    共有2条评论

    • IT宅男
    • mr jack
    • Mr ken
    • Mright
    • cappuccino
    • YUI
    • 课课家运营团队
    • 课课家技术团队1
    • 酸酸~甜甜
    • 选择版块:

    • 标题:

    • 内容

    • 验证码:

    • 标题:

    • 内容

    • 选择版块:

    移动帖子x

    移动到: