围绕 '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 |