Python中的多位操作

2024-04-18 19:12:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个变量包含一个位值,比如10000000代表10mb。我想写一个函数,从一个位值返回一个单位正确的字符串,并正确转换。你知道吗

例如,如果我使用52200000,它返回52.2mb。你知道吗

我不知道怎么继续。有人能帮忙吗,谢谢


Tags: 函数字符串单位代表mb位值
2条回答
def humanize(n):
   base=1000.0   # replace with 1024 if you want kib Mib etc
   letters=['','k','M','G','T','P','E','Z','Y'] 
   f=float(n)
   for x in letters:
       if f < base: break
       f /= base
   return '{:.3}{}b'.format(f,x) # change {}b to {}ib if working with kib etc.

现在Mb通常指的是十进制的百万字节,Mib通常指的是1024*1024字节。这段代码很容易切换。你知道吗

def bytesto(bytes, to, bsize=1000):
    a = {'k' : 1, 'm': 2, 'g' : 3, 't' : 4, 'p' : 5, 'e' : 6 }
    r = float(bytes)
    for i in range(a[to]):
        r = r / bsize
    return(r)

you can use above function to convert bytes to kb,mb,gb,tb

  • 将字节转换为KBprint(bytesto(314575262000000, 'k')) # 314575262000.0 KB
  • 将字节转换为MBprint(bytesto(314575262000000, 'm')) # 314575262.0 MB
  • 将字节转换为TBprint(bytesto(314575262000000, 't')) # 314.575262 TB

相关问题 更多 >