网络编程
位置:首页>> 网络编程>> Python编程>> Python字节单位转换实例

Python字节单位转换实例

作者:_荣耀之路_  发布时间:2023-07-18 07:09:16 

标签:Python,字节单位,转换

我就废话不多说了,直接上代码!


from enum import Enum

class Values():
 values={'B':1}
 @staticmethod
 def getValues():
   if len(Values.values)<=1:
     kbunits=['KB','MB','GB','TB','PB','EB','ZB','YB','BB','NB','DB']
     kibunits=['KiBi','MiB','GiB','TiB','PiB','EiB','ZiB','YiB','BiB','NiB','DiB']
     for index,unit in enumerate(kibunits):
       Values.values[unit]=1<<(index+1)*10
     for index,unit in enumerate(kbunits):
       Values.values[unit]=10**((index+1)*3)
   return Values.values
 @staticmethod
 def get(key):
   return Values.getValues().get(key)

class Units(Enum):

def __new__(cls,name):
   obj = object.__new__(cls)
   print (name)
   obj._value_=Values.get(name)
   return obj
 B=('B')
 KB=('KB')
 KiB=('KiBi')
 MB=('MB')
 MiB=('MiB')
 GB=('GB')
 GiB=('GiB')
 TB=('TB')
 TiB=('TiB')
 PB=('PB')
 PiB=('PiB')
 EB=('EB')
 EiB=('EiB')
 ZB=('ZB')
 ZiB=('ZiB')
 YB=('YB')
 YiB=('YiB')
 BB=('BB')
 BiB=('BiB')
 NB=('NB')
 NiB=('NiB')
 DB=('DB')
 DiB=('DiB')

class ByteUnitConversionUtil():
 __defaultformat="%.5f"
 @staticmethod
 def convert(value,unit=Units.B,format=__defaultformat):
   if(unit==Units.B):
     return str(value).split(".",2)[0]+unit.name
   else:
     return (format % (value/unit.value))+unit.name

if __name__=="__main__":
 print(ByteUnitConversionUtil.convert(12313213453,Units.KiB,"%.2f"))

来源:https://blog.csdn.net/asty9000/article/details/79793186

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com