我正在尝试编写一个应用程序来将字节转换为 kb 到 mb 到 gb 到 tb。
这是我到目前为止所拥有的:
def size_format(b):
if b < 1000:
return '%i' % b + 'B'
elif 1000 <= b < 1000000:
return '%.1f' % float(b/1000) + 'KB'
elif 1000000 <= b < 1000000000:
return '%.1f' % float(b/1000000) + 'MB'
elif 1000000000 <= b < 1000000000000:
return '%.1f' % float(b/1000000000) + 'GB'
elif 1000000000000 <= b:
return '%.1f' % float(b/1000000000000) + 'TB'
问题是,当我尝试该应用程序时,我得到了小数点归零后的所有内容。
例子size_format(623)
产量
'623B'
但与size_format(6200)
,
而不是得到“6.2kb”
我得到“6.0kb”。
有什么想法吗?
Bryan_Rch 答案的修正版本:
def format_bytes(size):
# 2**10 = 1024
power = 2**10
n = 0
power_labels = {0 : '', 1: 'kilo', 2: 'mega', 3: 'giga', 4: 'tera'}
while size > power:
size /= power
n += 1
return size, power_labels[n]+'bytes'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)