python 实现 byte 可视化转换
制作命令行工具过程中,因需要展示文件大小,所以造了个轮子,实现了以下byte可视化转换。
如果哪位仁兄知道有现成的轮子,劳烦留言告知一声。
以下是代码实现。
def unit_conversion(size):
ratio = 2 ** 10
units = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB']
level = 0
size = int(size)
if size < 0:
try:
raise ValueError
except ValueError as e:
print('Please enter the correct parameters', repr(e))
for unit in units:
if size > ratio:
size = size / ratio
level += 1
continue
else:
size = '%.1f %s' % (size, unit)
return size
size = '这个大小多少有点过分'
return size
# 以下是测试部分
test0 = unit_conversion(230)
test1 = unit_conversion(1500)
test2 = unit_conversion(2823230)
test3 = unit_conversion(8231283128)
test4 = unit_conversion(10239841023123)
test5 = unit_conversion(502938748172301283017)
test6 = unit_conversion(923619287389872013891231)
test7 = unit_conversion(72379812387401293812847821631246)
print(f'test0 : {test0}')
print(f'test1 : {test1}')
print(f'test2 : {test2}')
print(f'test3 : {test3}')
print(f'test4 : {test4}')
print(f'test5 : {test5}')
print(f'test6 : {test6}')
print(f'test7 : {test7}')
test0 : 230.0 B
test1 : 1.5 KB
test2 : 2.7 MB
test3 : 7.7 GB
test4 : 9.3 TB
test5 : 436.2 EB
test6 : 782.3 ZB
test7 : 这个大小多少有点过分