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