将数字转换为文字的模块。易于扩展。
项目描述
num2words库 - 多语言中将数字转换为文字
.. 图像:: https://img.shields.io/pypi/v/num2words.svg :target: https://pypi.python.org/pypi/num2words
.. 图像:: https://travis-ci.org/savoirfairelinux/num2words.svg?branch=master :target: https://travis-ci.org/savoirfairelinux/num2words
.. 图像:: https://coveralls.io/repos/github/savoirfairelinux/num2words/badge.svg?branch=master :target: https://coveralls.io/github/savoirfairelinux/num2words?branch=master
num2words
是一个库,可以将数字(如 42
)转换为单词(如 forty-two
)。它支持多种语言(请查看以下列表以获取完整的语言列表)并且还可以生成序数(如 forty-second
)(尽管目前此功能对某些语言来说有点bug)。
项目托管在 GitHub_ 上。欢迎贡献。
.. _GitHub: https://github.com/savoirfairelinux/num2words
安装
安装 num2words
最简单的方法是使用 pip:
pip install num2words
否则,您可以下载源代码包,然后执行:
python setup.py install
此库中的测试套件是新的,所以它相当薄,但可以通过以下方式运行:
python setup.py test
要运行完整的 CI 测试套件,包括代码风格检查和多个 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 céntimos
在代码中只有一个函数可以使用:
>>> from num2words import num2words
>>> num2words(42)
forty-two
>>> num2words(42, to='ordinal')
forty-second
>>> num2words(42, lang='fr')
quarante-deux
除了数值参数外,还有两个主要的可选参数,to:
和 lang:
to: 要使用的转换器。支持的值包括
cardinal
(默认)ordinal
ordinal_num
year
currency
lang: 转换数字的语言。支持的值包括
en
(英语,默认)am
(阿姆哈拉语)ar
(阿拉伯语)az
(阿塞拜疆语)by
(白俄罗斯语)cz
(捷克语)de
(德语)dk
(丹麦语)en_GB
(英语 - 英国)en_IN
(英语 - 印度)en_NG
(英语 - 尼日利亚)es
(西班牙语)es_CO
(西班牙语 - 哥伦比亚)es_VE
(西班牙语 - 委内瑞拉)es_GT
(西班牙语 - 危地马拉)eu
(EURO)fa
(波斯语)fi
(芬兰语)fr
(法语)fr_CH
(法语 - 瑞士)fr_BE
(法语 - 比利时)fr_DZ
(法语 - 阿尔及利亚)he
(希伯来语)hu
(匈牙利语)id
(印度尼西亚语)is
(冰岛语)it
(意大利语)ja
(日语)kn
(卡纳达语)ko
(韩语)kz
(哈萨克语)lt
(立陶宛语)lv
(拉脱维亚语)no
(挪威语)pl
(波兰语)pt
(葡萄牙语)pt_BR
(葡萄牙语 - 巴西)sl
(斯洛文尼亚语)sr
(塞尔维亚语)sv
(瑞典语)ro
(罗马尼亚语)ru
(俄语)te
(泰卢固语)tg
(塔吉克语)tr
(土耳其语)th
(泰语)vi
(越南语)nl
(荷兰语)uk
(乌克兰语)
您可以提供类似 fr_FR
的值;如果国家不存在但语言存在,代码将回退到基本语言(即 fr
)。如果您提供不受支持的语言,将引发 NotImplementedError
。因此,如果您想使用回退来调用 num2words
,可以这样做:
try:
return num2words(42, lang=mylang)
except NotImplementedError:
return num2words(42, lang='en')
此外,一些转换器和语言支持其他可选参数,这些参数对于使转换器在实际中使用变得有用是必需的。
Wiki
有关某些本地化的更多信息,请查看Wiki_。请随意提出对Wiki的改进建议。
.. _Wiki: https://github.com/savoirfairelinux/num2words/wiki
历史
num2words
是基于由 Taro Ogawa 于 2003 年创建的一个旧库 pynum2word
。不幸的是,该库停止了维护,而且作者无法联系。还有另一位开发者 Marius Grigaitis,他在 2011 年添加了立陶宛语支持,但并未接管项目的维护。
因此,我基于 Marius Grigaitis 的改进,重新发布 pynum2word
为 num2words
。
Virgil Dupras,Savoir-faire Linux
变更日志
版本 0.5.13 -- 2023/10/18
- 修复了巴西葡萄牙语代码中当百位精确时引用千位的问题。 (#421)
- 修复了当百位精确时亿、万亿等问题。 (#436)
- 修复了负数问题 (#477)
- 修复 lang_DK 问题 (#366)
- 挪威提升 (#484)
- BYN 到 EU 和 RU (#439)
- 将 python3.6 更改为 python3.11,因为 Ubuntu 22.04 中已弃用 (#494)
- 添加阿塞拜疆语支持 (#495)
- 添加冰岛语 (#380)
- 希伯来语长格式拼写、性别、序数、分数、maxval=1e66、构造形式 (#490)
- 修复 15、16、17、18、19 问题 (#505)
- 添加对尼日利亚奈拉的支持 (#507)
- 修复阿拉伯语中 num2words 的几个问题 (#512)
- 支持危地马拉货币 (#510)
- 修复 #508:处理意大利语 to_ordinal 中的字符串输入 (#518)
- 添加斯洛伐克语支持 (#533)
- 为乌克兰添加性别和形态变化支持 (#530)
- 为俄语添加性别 (#503)
- lang By Added (#506)
- 将沙特里亚尔添加到英语 (#531)
版本 0.5.12 -- 2022/08/19
- 支持日本令和 (令和/れいわ) 时代。 (#412)
- 添加基本的波斯语支持 (#354)
- 添加塔吉克语支持 (#406)
- 修复阿姆哈拉语支持 (#465)
- 修复希伯来语的复数化和实现 to_currency (#330)
- 添加对意大利语中一些货币的翻译支持 (#434)
- 修复波兰二十 (#345)
- 为 ru 和 en 添加 uzs (#422)
- 添加对世界语数字的支持。 (#387)
- [ADD] 为土耳其添加序数数字 (#468)
- 修复荷兰语中的零点问题 (#326)
版本 0.5.11 -- 2022/08/03
- 将 KZT 和 UAH 货币添加到 lang RU (#264)
- 添加 es_NI 货币 (#276)
- 更新 .gitignore 以添加 .eggs/ 目录 (#280)
- 修复希伯来语支持 (#289)
- 更新 test_tr.py 以提高覆盖率 (#298)
- 将 12,345 添加到 ES 测试套件以增加覆盖率 (#287)
- 添加 lang_DK.py 的简单测试 (#286)
- 添加 lang_EN.py 的测试用例 (#288)
- 为 base.py 添加更多测试 (#283)
- 修复 IT 语言中 21(基数和序数)的拼写错误 (#270)
- 罗马尼亚问题 259 (#260)
- 添加泰卢固语支持/修复卡纳达语中的错误 (#263)
- 添加哈萨克语(KZ)支持 (#306)
- 更新 README.rst (#307)
- 添加匈牙利语支持 (#310)
- [UPD] Readme 文件 (#363)
- [ADD] num2words:添加几种货币的西班牙语翻译 (#356)
- 添加瑞典语,包括测试用例 (#352)
- 修复 lang_PT_BR 中的重复行 (#355)
- 修复荷兰语(NL)中的 ordinal_num 输出 (#369)
- 波兰序数 (#367)
- [tr] 返回土耳其 0 序数和基数 (#347)
- 改进乌克兰支持,并在 CZ、KZ、LT、LV、PL、RU、SR 语言中进行了一些小的修复 (#400)
- feat: ci:用 github workflows 替换 travis (#448)
- 添加缺失的重音符号("dieciséis"、"dólar"、"dólares"、"veintiún"),改进货币性别处理,修复英镑分名称 (#443)
版本 0.5.10 -- 2019/05/12
- 添加卡纳达语言本地化 (#243)
- 撤销错误更改的一些版权 (#254)
- 将印度卢比添加到支持的货币 (#248)
- 改进德语和法语货币功能 (#247)
- 改进斯洛文尼亚本地化 (#246)
- 改进西班牙语本地化 (#240)
- 修复源代码中的“seperator”拼写错误 (#238)
- 将字符串转换为十进制值 (#223)
- 改进德语本地化和测试覆盖率 (#237)
- 改进波兰语本地化 (#233)
- 修复法语中以1结尾的序数 (#236)
版本 0.5.9 -- 2019/01/10
- 修复发布 0.5.8 中的编码问题 (#229)
- 改进波兰语本地化 (#228)
版本 0.5.8 -- 2018/11/17
- 添加葡萄牙语(葡萄牙)本地化 (#198)
- 添加命令行工具使用 num2words
- 使用越南语的 ISO 语言代码
- 改进韩语本地化 (#219)
- 改进塞尔维亚语(拉丁语)本地化 (#207)
- 改进测试设置 (#220)
- 改进德语本地化 (#214) (#222)
- 改进罗马尼亚语本地化 (#215)
- 改进西班牙语本地化 (#187) (#200)
- 改进俄语本地化 (#211) (#212)
- 改进法语本地化 (23902ab)
- 改进阿拉伯语本地化 (#176)
- 改进立陶宛语和拉脱维亚语本地化 (#185)
- 改进乌克兰语本地化 (#183)
版本 0.5.7 -- 2018/06/27
- 添加芬兰语本地化. (#170)
- 添加日语本地化. (#171)
- 添加比利时法语本地化. (#151)
- 添加捷克语本地化. (#154)
- 添加泰语本地化. (#139)
- 改进英语本地化. (#144)
- 改进西班牙语本地化. (#167)
- 改进意大利语本地化. (#143)
- 改进文档. (#155, #145, #174)
版本 0.5.6 -- 2017/11/22
- 重构 to_currency (#135)
- 允许使用其他转换器 to_currency, to_year (#95)
- 修复代码以遵守 PEP8 (#98, #105)
- 添加斯洛文尼亚语本地化 (#97)
- 添加乌克兰语本地化 (#93)
- 添加荷兰语本地化 (#91)
- 添加阿尔及利亚法语本地化 (#86)
- 添加土耳其语本地化 (#85)
版本 0.5.5 -- 2017/07/02
- 添加阿拉伯语本地化 (#72)
- 添加西班牙语-哥伦比亚和西班牙语-委内瑞拉本地化 (#67)
- 添加越南语本地化 (#61)
- 添加意大利语本地化 (#56, #59)
- 改进俄语本地化 (#62)
- 改进波兰语本地化 (#58)
版本 0.5.4 -- 2016/10/18
- 大量新增语言!
- 添加波兰语本地化. (#23)
- 添加瑞士法语本地化. (#38)
- 添加俄语本地化. (#28, #46, #48)
- 添加印度尼西亚语本地化. (#29)
- 添加挪威语本地化. (#33)
- 添加丹麦语本地化. (#40)
- 添加巴西语本地化. (#37, #47)
- 改进德语本地化. (#25, #27, #49)
- 改进立陶宛语本地化. (#52)
- 改进浮点数拼写. (#24)
版本 0.5.3 -- 2015/06/09
- 修复打包问题. (#21, #22)
版本 0.5.2 -- 2015/01/23
- 添加拉脱维亚语本地化. (#9)
- 改进西班牙语本地化. (#10, #13, #14)
- 改进立陶宛语本地化. (#12)
版本 0.5.1 -- 2014/03/14
- 添加 Python 3 支持,使用 2to3. (#3)
- 修复西班牙语中大数字的问题. (#2)
- 修复西班牙语中 30 到 40 的翻译错误. (#4)
- 修复英语中单词连接的问题. (#8)
版本 0.5.0 -- 2013/05/28
- 根据旧项目
pynum2word
创建num2words
。
项目详情
下载文件
下载适合您平台的文件。如果您不确定该选择哪个,请了解更多关于安装包的信息。
源代码分发
构建分发
num2words-0.5.13.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a3064716fbbf90d75c449450cebfbc73a6a13e63b2531d09bdecc3ab1a2209cf |
|
MD5 | 5e0b8517b10cf421ab4391319cd920d6 |
|
BLAKE2b-256 | 0dde2030c83f7b6e241e1de375002101232cf9644080f5dcb229765486e1c9d2 |
num2words-0.5.13-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 39e662c663f0a7e15415431ea68eb3dc711b49e3b776d93403e1da0a219ca4ee |
|
MD5 | b0430260002ee475e91ca0d95fe7cbf7 |
|
BLAKE2b-256 | 8ff0ca1228af2bcbce2fdf2b23d58643c84253b88a3c1cd9dba391ca683c4b21 |