字节转换为可读大小格式算法
本文最后更新于 408 天前,其中的信息可能已经有所发展或是发生改变。

把字节数变为人类可读的大小单位,例如:4770523482 B ≈ 4.44GB

其实以前写过一个同样功能的,今天看了看,这尼玛写的啥玩意!

不得不感慨,以前写代码的水平真的很差劲,写出来的东西没法看,大家有兴趣可以去吐槽一下:Python转换文件大小单位

这好像是15年中写的,两年过去了,同样还是这个曾经让我考虑一下午而且把代码写成这个烂样子的问题,如今我用了3min,让后写下了一个更好的版本:

 def humanSize(size):
    size = float(size)
    assert (size >= 0)
    division = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB']
    standard = 1024
    modTimes = 0
    while size > standard:
        size /= standard
        modTimes += 1
    result = str(round(size, 2)) + division[modTimes]
    return result 

我也不知道自己以前怎么想的,这么简单的问题都不会·······

不过以前那些代码对于错误的处理考虑的比这个要周全多了,但因为以前没有架构意识,写的都是一把抓;现在我更愿意把问题从底层暴露给更上层的模块(调用者),让他去处理,写日志之类的。

还是解释一下吧,很简单:

根据人类计算的步骤,我们会不断地对字节数除以1024(1000)作为下一单位大小的值,而当这个值小于1024时,则说明已经到了最接近该单位的值。这样,我们通过记录除法运算的次数,便可以得知单位,而剩下的值便是该文件在这个单位下的大小。

嗯~ o(* ̄▽ ̄*)o,清楚明了~

暂无评论

发送评论 编辑评论


|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇