def bytes_to_human(n): symbols = (\'K\',\'M\',\'G\',\'T\',\'P\',\'E\',\'Z\',\'Y\') prefix = {} for i,s in enumerate(symbols): prefix[s] = 1 << (i + 1) * 10 for s in reversed(symbols): if n >= prefix[s]: value = float(n) / prefix[s] return \'%.1f%s\' % (value,s) return \'%sB\' % n
python编写的储存单位转换代码(以字节(B)为单位)
def bytes(bytes): if bytes < 1024: #比特 bytes = str(round(bytes, 2)) + \' B\' #字节 elif bytes >= 1024 and bytes < 1024 * 1024: bytes = str(round(bytes / 1024, 2)) + \' KB\' #千字节 elif bytes >= 1024 * 1024 and bytes < 1024 * 1024 * 1024: bytes = str(round(bytes / 1024 / 1024, 2)) + \' MB\' #兆字节 elif bytes >= 1024 * 1024 * 1024 and bytes < 1024 * 1024 * 1024 * 1024: bytes = str(round(bytes / 1024 / 1024 / 1024, 2)) + \' GB\' #千兆字节 elif bytes >= 1024 * 1024 * 1024 * 1024 and bytes < 1024 * 1024 * 1024 * 1024 * 1024: bytes = str(round(bytes / 1024 / 1024 / 1024 / 1024, 2)) + \' TB\' #太字节 elif bytes >= 1024 * 1024 * 1024 * 1024 * 1024 and bytes < 1024 * 1024 * 1024 * 1024 * 1024 * 1024: bytes = str(round(bytes / 1024 / 1024 / 1024 / 1024 / 1024, 2)) + \' PB\' #拍字节 elif bytes >= 1024 * 1024 * 1024 * 1024 * 1024 * 1024 and bytes < 1024 * 1024 * 1024 * 1024 * 1024 * 1024 * 1024: bytes = str(round(bytes / 1024 / 1024 / 1024 / 1024 / 1024 /1024, 2)) + \' EB\' #艾字节 return bytes if __name__ == \'__main__\': print(\'0:\' + bytes(0)) print(\'1:\' + bytes(1)) print(\'2:\' + bytes(10)) print(\'3:\' + bytes(100)) print(\'4:\' + bytes(1000)) print(\'5:\' + bytes(10000)) print(\'6:\' + bytes(100000)) print(\'7:\' + bytes(1000000)) print(\'8:\' + bytes(10000000)) print(\'9:\' + bytes(100000000)) print(\'10:\' + bytes(1000000000)) print(\'11:\' + bytes(10000000000)) print(\'12:\' + bytes(100000000000)) print(\'13:\' + bytes(1000000000000)) print(\'14:\' + bytes(10000000000000)) print(\'15:\' + bytes(100000000000000)) print(\'16:\' + bytes(1000000000000000)) print(\'17:\' + bytes(10000000000000000)) print(\'18:\' + bytes(100000000000000000)) print(\'19:\' + bytes(1000000000000000000)) print(\'20:\' + bytes(10000000000000000000)) print(\'20:\' + bytes(100000000000000000000)) print(\'20:\' + bytes(1000000000000000000000))
测试:
\”D:\\Program Files\\Python\\Python36\\python.exe\” C:/Users/Jochen/PycharmProjects/mysite/bytes.py
0:0 B
1:1 B
2:10 B
3:100 B
4:1000 B
5:9.77 KB
6:97.66 KB
7:976.56 KB
8:9.54 MB
9:95.37 MB
10:953.67 MB
11:9.31 GB
12:93.13 GB
13:931.32 GB
14:9.09 TB
15:90.95 TB
16:909.49 TB
17:8.88 PB
18:88.82 PB
19:888.18 PB
20:8.67 EB
20:86.74 EB
20:867.36 EBProcess finished with exit code 0
© 版权声明
THE END
暂无评论内容