跳转到主要内容

围绕 'units' 命令行的一个简单封装

项目描述

单位转换器

单位转换器是一个简单的实用工具,用于转换单位。虽然一开始可能看起来是一个简单任务,但存在许多不同的公约和组合。而不是发明另一个单位转换实用工具,这个包重用了units shell命令,这是我发现的最优秀的实现。

>>> from keas.unit import unit

第一步是实例化单位转换器对象

>>> converter = unit.UnitConverter()

默认情况下,转换器使用以下路径的units命令

>>> converter.executable
'/usr/bin/units'

那么让我们进行一次简单的单位转换

>>> converter.convert('atm', 'kPa')
Decimal("101.325")

转换对象可以设置几个选项。第一个是输出格式,允许您指定输出的精度。当然,我们随后将此输出转换为十进制

>>> converter.format
>>> converter.format = '%.15g' # 15 decimal places
>>> converter.convert('atm', 'kPa')
Decimal("101.325")

接下来,您可以指定额外的单位转换数据文件名,以便加载自定义转换

>>> import os
>>> datafile = os.path.join(
...     os.path.dirname(unit.__file__), 'test-conversions.dat')
>>> converter.filenames
>>> converter.filenames = ('', datafile)
>>> converter.convert('keas', 'l')
Decimal("0.54321")
>>> converter.filenames = None

空名称表示还应加载默认数据文件。

最后一个选项允许您设置是否将“-”字符视为乘法运算符,因为在一些表示法中它就是这样使用的。

>>> converter.minusAsProduct
False
>>> converter.minusAsProduct = True
>>> converter.convert('m-m-m', 'l')
Decimal("1000")

最后,让我们看看一些错误场景。

  1. 从一种单位到另一种单位没有已知的转换

>>> converter.convert('kg', 'm')
Traceback (most recent call last):
...
UnitConversionError: ('/usr/bin/units -t -o %.15g -p "kg" "m"',
                      'conformability error')
  1. 其中一个单位是未知的

>>> converter.convert('kg', 'foo')
Traceback (most recent call last):
...
UnitConversionError: ('/usr/bin/units -t -o %.15g -p "kg" "foo"',
                      "Unknown unit 'foo'")
  1. 其中一个单位包含无效的表达式

>>> converter.convert('kg', 'm *')
Traceback (most recent call last):
...
UnitConversionError: ('/usr/bin/units -t -o %.15g -p "kg" "m *"',
                      "Error in 'm *': Parse error")

变更记录

1.0.0 (2009-07-26)

  • 初始发布。

项目详情


下载文件

为您的平台下载文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

keas.unit-1.0.0.tar.gz (5.3 kB 查看哈希值)

上传时间

由以下机构支持

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