“units”shell命令的简单包装

keas.unit的Python项目详细描述


单元转换器

单位转换器是转换单位的简单实用程序。尽管看起来 一开始只是一个小任务,有很多不同的约定和 组合。而不是发明另一个单位转换实用程序,这个 包重用了unitsshell命令,该命令具有最好的实现 我在那里发现的。

>>> 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")

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

  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)

  • 初次发布。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
CentOS上的java Spring Boot简易应用程序需要很长时间才能启动   java如何检查字符串值是否等于null?   收集器中的java映射值。分组方式()   java需要支持Azure AD B2C webapp集成   java如何加入线程以停止它?   java如何使用意图传递类的对象?   java如何在战争环境中发现CDI生产者?   多模块项目中java奇怪的编译器行为   java如何在web应用程序中管理密码?   java从http服务器、filehandler中删除冗余代码   java使用反射来获取泛型类的字段   java Spring MVC/Hibernate/MySQL 400错误请求错误   给定正整数a的java幂为3   在Java中将元素拆分为不同数量的列表?   java展开折叠窗格