python编写的实用函数-001

001 - #此函数将文件大小的字节转换为K,M,G这样方便读取的单位
def bytes2human(n):
    symbols = ('K','M','G','T','P','E','Z','Y')
    prefix = {}
    for i,s in enumerate(symbols):
        print(str(i)+"-"+s)
        #<<位移操作,这里把1转换为二进制,0000000000000001,然后整体向左位移10位
        #就是2的10次方
        #左移n位就是相当于乘以2的n次方
        #右移n位相当于除以2的n次方
        prefix[s] = 1 << (i+1) * 10
        # print(prefix[s])
        #prefix[K]=1024 M=1024*1024
    for s in reversed(symbols):
        if n >= prefix[s]:
            value = float(n) / prefix[s]
            # print('%.1f%s' % (value,s))
            return '%.1f%s' % (value,s)
    return "%sB" % n

 

posted @ 2020-12-17 09:50  紫电清霜  阅读(65)  评论(0编辑  收藏  举报