Python humanize 工具库
项目描述
humanize
这个小巧的包包含各种常见的人类化工具,如将数字转换为模糊的人类可读的持续时间("3分钟前")或转换为人类可读的大小或吞吐量。它支持以下语言:
- 阿拉伯语
- 巴斯克语
- 孟加拉语
- 巴西葡萄牙语
- 加泰罗尼亚语
- 丹麦语
- 荷兰语
- 世界语
- 欧洲葡萄牙语
- 芬兰语
- 法语
- 德语
- 希腊语
- 希伯来语
- 印尼语
- 意大利语
- 日语
- 克林贡语
- 韩语
- 挪威语
- 波斯语
- 波兰语
- 俄语
- 简体中文
- 斯洛伐克语
- 斯洛文尼亚语
- 西班牙语
- 瑞典语
- 土耳其语
- 乌克兰语
- 越南语
API 参考
https://humanize.readthedocs.io
安装
从 PyPI 安装
python3 -m pip install --upgrade humanize
从源码安装
git clone https://github.com/python-humanize/humanize
cd humanize
python3 -m pip install -e .
用法
整数人性化
>>> import humanize
>>> humanize.intcomma(12345)
'12,345'
>>> humanize.intword(123455913)
'123.5 million'
>>> humanize.intword(12345591313)
'12.3 billion'
>>> humanize.apnumber(4)
'four'
>>> humanize.apnumber(41)
'41'
日期和时间人性化
>>> import humanize
>>> import datetime as dt
>>> humanize.naturalday(dt.datetime.now())
'today'
>>> humanize.naturaldelta(dt.timedelta(seconds=1001))
'16 minutes'
>>> humanize.naturalday(dt.datetime.now() - dt.timedelta(days=1))
'yesterday'
>>> humanize.naturalday(dt.date(2007, 6, 5))
'Jun 05'
>>> humanize.naturaldate(dt.date(2007, 6, 5))
'Jun 05 2007'
>>> humanize.naturaltime(dt.datetime.now() - dt.timedelta(seconds=1))
'a second ago'
>>> humanize.naturaltime(dt.datetime.now() - dt.timedelta(seconds=3600))
'an hour ago'
精确时间差
>>> import humanize
>>> import datetime as dt
>>> delta = dt.timedelta(seconds=3633, days=2, microseconds=123000)
>>> humanize.precisedelta(delta)
'2 days, 1 hour and 33.12 seconds'
>>> humanize.precisedelta(delta, minimum_unit="microseconds")
'2 days, 1 hour, 33 seconds and 123 milliseconds'
>>> humanize.precisedelta(delta, suppress=["days"], format="%0.4f")
'49 hours and 33.1230 seconds'
较小单位
如果秒数太大,将 minimum_unit
设置为毫秒或微秒
>>> import humanize
>>> import datetime as dt
>>> humanize.naturaldelta(dt.timedelta(seconds=2))
'2 seconds'
>>> delta = dt.timedelta(milliseconds=4)
>>> humanize.naturaldelta(delta)
'a moment'
>>> humanize.naturaldelta(delta, minimum_unit="milliseconds")
'4 milliseconds'
>>> humanize.naturaldelta(delta, minimum_unit="microseconds")
'4 milliseconds'
>>> humanize.naturaltime(delta)
'now'
>>> humanize.naturaltime(delta, minimum_unit="milliseconds")
'4 milliseconds ago'
>>> humanize.naturaltime(delta, minimum_unit="microseconds")
'4 milliseconds ago'
文件大小人性化
>>> import humanize
>>> humanize.naturalsize(1_000_000)
'1.0 MB'
>>> humanize.naturalsize(1_000_000, binary=True)
'976.6 KiB'
>>> humanize.naturalsize(1_000_000, gnu=True)
'976.6K'
可读浮点数
>>> import humanize
>>> humanize.fractional(1/3)
'1/3'
>>> humanize.fractional(1.5)
'1 1/2'
>>> humanize.fractional(0.3)
'3/10'
>>> humanize.fractional(0.333)
'333/1000'
>>> humanize.fractional(1)
'1'
科学记数法
>>> import humanize
>>> humanize.scientific(0.3)
'3.00 x 10⁻¹'
>>> humanize.scientific(500)
'5.00 x 10²'
>>> humanize.scientific("20000")
'2.00 x 10⁴'
>>> humanize.scientific(1**10)
'1.00 x 10⁰'
>>> humanize.scientific(1**10, precision=1)
'1.0 x 10⁰'
>>> humanize.scientific(1**10, precision=0)
'1 x 10⁰'
本地化
如何在运行时更改区域设置
>>> import humanize
>>> import datetime as dt
>>> humanize.naturaltime(dt.timedelta(seconds=3))
'3 seconds ago'
>>> _t = humanize.i18n.activate("ru_RU")
>>> humanize.naturaltime(dt.timedelta(seconds=3))
'3 секунды назад'
>>> humanize.i18n.deactivate()
>>> humanize.naturaltime(dt.timedelta(seconds=3))
'3 seconds ago'
您可以将额外的参数 path
传递给 activate
以指定搜索区域设置的路径。
>>> import humanize
>>> humanize.i18n.activate("xx_XX")
<...>
FileNotFoundError: [Errno 2] No translation file found for domain: 'humanize'
>>> humanize.i18n.activate("pt_BR", path="path/to/my/own/translation/")
<gettext.GNUTranslations instance ...>
如何向现有区域文件添加新短语
xgettext --from-code=UTF-8 -o humanize.pot -k'_' -k'N_' -k'P_:1c,2' -k'NS_:1,2' -k'_ngettext:1,2' -l python src/humanize/*.py # extract new phrases
msgmerge -U src/humanize/locale/ru_RU/LC_MESSAGES/humanize.po humanize.pot # add them to locale files
如何添加新的区域
msginit -i humanize.pot -o humanize/locale/<locale name>/LC_MESSAGES/humanize.po --locale <locale name>
其中 <区域名称>
是区域缩写,例如 en_GB
、pt_BR
或仅 ru
、fr
等。
在 README 的顶部列出语言。
项目详情
下载文件
下载您平台上的文件。如果您不确定选择哪一个,请了解更多关于 安装包 的信息。
源代码分发
humanize-4.10.0.tar.gz (79.2 kB 查看哈希值)
构建分发
humanize-4.10.0-py3-none-any.whl (127.0 kB 查看哈希值)
关闭
humanize-4.10.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 06b6eb0293e4b85e8d385397c5868926820db32b9b654b932f57fa41c23c9978 |
|
MD5 | 1c0f59ba335b32c06e121e5577ed1548 |
|
BLAKE2b-256 | 5db1c8f05d5dc8f64030d8cc71e91307c1daadf6ec0d70bcd6eabdfd9b6f153f |
关闭
humanize-4.10.0-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 39e7ccb96923e732b5c2e27aeaa3b10a8dfeeba3eb965ba7b74a3eb0e30040a6 |
|
MD5 | c4dd5ef80fd54fe5deeeb100d5b5f667 |
|
BLAKE2b-256 | 8f49a29c79bea335e52fb512a43faf84998c184c87fef82c65f568f8c56f2642 |