跳转到主要内容

使用和显示字节数据

项目描述

https://secure.travis-ci.org/mulkieran/bytesize.png?branch=master

Bytesize

Bytesize是一个用于处理以字节为单位表示的大小计算的模块。其主要特点是Size类,可以从它构造出Size对象,表示精确和有限数量的字节。为Size对象定义了各种算术运算。

它的唯一目的是表示真实机器上的真实内存量。因此,它不允许字节的幂、不精确的字节数量或非有限数量的字节。为了保持常规的算术定律,它允许分数字节数量。

以字节为单位进行实际计算

当使用字节进行计算时,数值可以被视为一种逻辑量,而不是物理量。也就是说,与质量或长度等必须使用具有一定内置不精确性的测量仪进行测量的量不同,RAM或磁盘上的内存字节数是一个未测量但精确知道的量。因此,必须精确执行如两个Size的加法运算以及不同字节量级之间的转换等计算,例如从MiB到GiB。因此,底层实现必须使用对字节数的精确表示。浮点数,通常用于表示物理量,不允许使用。

运算

此模块不支持字节量的多维度。因此,将一个Size对象乘以另一个Size对象将导致抛出错误,因为该模块无法表示bytes^2。对于大多数用途,任何会产生多维字节量的操作都没有意义。目前没有计划修改此包以支持字节量的多维度。

许多字节量的计算是没有意义的。例如,2的幂是某些字节的数量,这是一种无意义的计算。所有这些操作都会抛出错误。

操作的结果类型是Size,在适用的情况下,或者是一个Rational的子类型,在适用的情况下。

浮点数

在Size的计算中使用浮点数是不可能的。当需要分数量时,使用Decimal对象而不是浮点数。因此,Size(0) * 1.2会抛出异常,但Size(0) * Decimal(“1.2”)是可以接受的。

显示Size

Size的显示根据指定的配置进行。在默认配置中,Size使用二进制而不是SI前缀或名称进行显示,无论其值如何。例如,1000字节不会显示为1KB(1千字节),而是显示为某些字节数或KiB(kibibytes)。

Size的详细表示使用精确的十进制表示,包括如果有循环部分的话。

表示单位

size模块提供了一套命名前缀,用于SI和二进制单位的所有非分数前缀。分数前缀未定义。

程序性构建Size

可以从Size对象、数值(例如,int或Decimal)或表示此类数值的字符串构建新的Size对象。字符串可以用来表示分数量,例如,“1.2”,但不允许使用浮点数。

构造函数接受一个可选的单位指定器,对于所有数值默认为bytes,对于Size对象默认为None。单位指定器的类型是由size模块提供的命名前缀或Size对象。

错误

bytesize操作引发的错误都是SizeError类的子类型。

其他包

如果您对在Python中使用物理量(而不是逻辑量)进行计算感兴趣,应查阅pint包:[http://pint.readthedocs.org](http://pint.readthedocs.org)。

项目详情


下载文件

下载您平台的文件。如果您不确定选择哪个,请了解更多关于[安装包](https://packaging.pythonlang.cn/tutorials/installing-packages/)的信息。

源分布

bytesize-0.4.tar.gz (48.1 kB 查看哈希)

上传时间

由以下组织支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面