“units”shell命令的简单包装
keas.unit的Python项目详细描述
单元转换器
单位转换器是转换单位的简单实用程序。尽管看起来
一开始只是一个小任务,有很多不同的约定和
组合。而不是发明另一个单位转换实用程序,这个
包重用了units
shell命令,该命令具有最好的实现
我在那里发现的。
>>> from keas.unit import unit
第一步是实例化unit converter对象:
>>> 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)
- 初次发布。