围绕 '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")
最后,让我们看看一些错误场景。
从一种单位到另一种单位没有已知的转换
>>> converter.convert('kg', 'm')
Traceback (most recent call last):
...
UnitConversionError: ('/usr/bin/units -t -o %.15g -p "kg" "m"',
'conformability error')
其中一个单位是未知的
>>> converter.convert('kg', 'foo')
Traceback (most recent call last):
...
UnitConversionError: ('/usr/bin/units -t -o %.15g -p "kg" "foo"',
"Unknown unit 'foo'")
其中一个单位包含无效的表达式
>>> 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的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 5589ff39acfe8c6a52a75ad9d80ef05e680f30466d806a17665fa55b38b2c26b |
|
| MD5 | 0d593ac639e5d5423d984c022bc8d681 |
|
| BLAKE2b-256 | 7999436dd14158dc9c7a0bfd50acf802ac1c84216223bc95acf17d5b960b3c70 |