Python字节单位转换实例

yipeiwu_com6年前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"))

以上这篇Python字节单位转换实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

批量将ppt转换为pdf的Python代码 只要27行!

这是一个Python脚本,能够批量地将微软Powerpoint文件(.ppt或者.pptx)转换为pdf格式。 使用说明 1、将这个脚本跟PPT文件放置在同一个文件夹下。 2、运行这个脚...

使用Flask-Cache缓存实现给Flask提速的方法详解

本文实例讲述了使用Flask-Cache缓存实现给Flask提速的方法。分享给大家供大家参考,具体如下: Django里面可以很方便的应用缓存,那Flask里面没准备这么周全怎么办?自己...

PyQt5实现五子棋游戏(人机对弈)

PyQt5实现五子棋游戏(人机对弈)

这篇博客主要是为了学习Python和PyQt,因为对棋类游戏比较热衷,所以从规则较简单的五子棋入手,利用PyQt5实现图形界面,做一个可以进行人机对弈的脚本,最后打包成应用程序。AI的算...

Python数据类型之Tuple元组实例详解

本文实例讲述了Python数据类型之Tuple元组。分享给大家供大家参考,具体如下: tuple元组 1.概述 本质上是一种有序的集合,和列表非常的相似,列表使用[]表示,元组使用()表...

Python实现翻转数组功能示例

本文实例讲述了Python实现翻转数组功能。分享给大家供大家参考,具体如下: 题目描述 给定一个长度为n的整数数组a,元素均不相同,问数组是否存在这样一个片段,只将该片段翻转就可以使整个...