Python字节单位转换(将字节转换为K M G T)

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 EB

Process finished with exit code 0

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容