将数字转换为单词的模块。易于扩展。
num2words的Python项目详细描述
num2words-将数字转换为多种语言的单词
num2words是一个库,它可以将 42 这样的数字转换成 四十二个这样的单词。 它支持多种语言(完整列表见下表 ,甚至可以生成序数,如 四十二 (尽管最后一个功能目前对于某些语言来说有点麻烦)。
该项目位于github上。欢迎投稿。
安装
安装num2words的最简单方法是使用pip:
pip install num2words
否则,您可以下载源程序包,然后执行:
python setup.py install
此库中的测试套件是新的,因此它相当薄,但可以使用以下命令运行:
python setup.py test
要运行完整的ci测试套件(包括linting和多个python环境):
pip install tox tox
用法
命令行:
$ num2words 10001 ten thousand and one $ num2words 24,120.10 twenty-four thousand, one hundred and twenty point one $ num2words 24,120.10 -l es veinticuatro mil ciento veinte punto uno $num2words 2.14 -l es --to currency dos euros con catorce centimos
在代码中,只有一个函数可以使用:
>>> from num2words import num2words >>> num2words(42) forty-two >>> num2words(42, to='ordinal') forty-second >>> num2words(42, lang='fr') quarante-deux
除了数值参数外,还有两个主要的可选参数。
到: 要使用的转换器。支持的值为:
- 基数 (默认值)
- 序数
- 序数
- 年份
- 货币
语言: 转换数字的语言。支持的值为:
- en (英语,默认值)
- ar (阿拉伯语)
- 捷克语
- de (德语)
- dk (丹麦语)
- en_gb (英语-英国)
- 英语输入 (英语-印度)
- es (西班牙语)
- es_co (西班牙语-哥伦比亚)
- es ve (西班牙语-委内瑞拉)
- 欧盟 (欧元)
- fi (芬兰语)
- fr (法语)
- 法语 (法语-瑞士)
- 法语 (法语-比利时)
- 法语区 (法语-阿尔及利亚)
- 他(希伯来语)
- id (印度尼西亚语)
- 它 (意大利语)
- ja (日语)
- kn (卡纳达语)
- ko (朝鲜语)
- lt (立陶宛语)
- lv (拉脱维亚语)
- 否 (挪威语)
- pl (波兰语)
- pt (葡萄牙语)
- pt_br (葡萄牙语-巴西语)
- sl (斯洛文尼亚语)
- sr (塞尔维亚语)
- ro (罗马尼亚语)
- ru (俄语)
- sl (斯洛文尼亚语)
- tr (土耳其语)
- th (泰语)
- vi (越南语)
nl (荷兰语)- 英国 (乌克兰语)
如果国家不存在,但 语言会,代码会返回到基本语言(即 fr )。如果 您提供的语言不受支持,将引发 notimplementederror 。 因此,如果要用回退方式调用num2words,可以执行以下操作:
try: return num2words(42, lang=mylang) except NotImplementedError: return num2words(42, lang='en')
另外,一些转换器和语言支持其他可选参数 使转换器在实际中有用所需的。
维基
有关某些本地化的更多信息,请查看wiki。 并随时建议增强wiki功能。
历史记录
num2words 基于一个旧库,由Taro Ogawa创建的 pynum2word 。 2003。不幸的是,图书馆停止了维护,作者 无法联系到。还有一个开发商,Marius Grigaitis,他在2011年 增加了立陶宛的支持,但没有接管项目的维护。
因此,我以马吕斯·格里盖蒂斯的改进和重新出版为基础。 pynum2word 为 num2words
Virgil Dupras,Savoir Faire Linux版