Humanize 包是一个专门设计用于将数值、日期、时间和文件大小转换成更易为人理解的格式的库。
此包对于创建用户友好的界面和可读性强的报告至关重要,在这些场景下,数据的解释需要快速且直观。Humanize 包的主要目标是弥合原始数据与人类理解之间的差距。
虽然计算机和数据库擅长处理原始数值数据,但这些格式对于人类来说可能难以迅速理解。Humanize 包通过将这些数据点转换为更直观和用户友好的格式来解决这一问题。
Humanize 包的安装
为了在 Python 中安装 Humanize 包,我们可以使用 pip,它是 Python 的标准包管理器。以下命令需要在命令行或终端中运行来安装 Humanize 包:
pip install humanize
安装完成后,我们可以通过运行 Python 解释器并导入 Humanize 包来验证是否正确安装:
import humanize
Humanize 包中的不同实用工具
Python 中的 Humanize 包提供了一系列将数据转换为易于阅读格式的工具,从而增强可用性和理解度。让我们详细探讨一下 Humanize 包所提供的不同实用工具:
数字工具
Humanize 包在 Python 中提供了多种数字工具,这些工具增强了数值数据的可读性和理解度。这些工具将数字转换为更自然且易于理解的格式。
整数格式化
整数格式化工具将大整数转换为带有逗号的字符串,以提高可读性。以下是应用整数格式化工具的一个例子:
import humanize
print(humanize.intcomma(123456))
输出
123,456
整数的单词表示
整数的单词表示工具将大整数转换为其单词形式,以便于理解,特别是对于非常大的数字。以下是将其应用于 12345678908545944 的示例:
import humanize
print(humanize.intword(12345678908545944))
输出
12.3 quadrillion
序数
序数工具将整数转换为其序数形式。例如,1 将显示为 1st,2 显示为 2nd。以下是将 3 转换为 3rd 的示例:
import humanize
print(humanize.ordinal(3))
输出
3rd
AP 样式的数字
这些工具将整数转换为其对应的单词形式。以下是将其应用于 9 的示例:
import humanize
print(humanize.apnumber(9))
输出
nine
分数单位
这个工具将小数转换为分数形式,以更直观的方式表示。以下是将其应用于 0.5 的示例:
import humanize
print(humanize.fractional(0.5))
输出
1/2
文件大小工具
我们知道,Python 中的 Humanize 包提供了多种工具,其中文件大小工具是专门设计用于将原始字节值转换为易读的文件大小的工具。
这些工具通过将文件大小转换为更易读和解释的格式来帮助使文件大小更容易理解。以下是 Humanize 包提供的文件大小工具的详细介绍:
使用 naturalsize()
进行文件大小格式化
naturalsize()
函数是主要的工具,用于将文件大小转换为易于阅读的格式。它会根据提供的大小自动选择合适的单位,如字节、KB、MB、GB 等。
语法
以下是 Python Humanize 包中 naturalsize()
函数的语法:
humanize.naturalsize(value, binary, gnu, format)
参数
以下是 naturalsize()
函数的参数:
-
-
binary
: 一个布尔标志,指示是否使用二进制单位,默认值为 False
。
-
gnu
: 一个布尔标志,指示是否使用 GNU 风格的输出,默认值为 False
。
-
format
: 一个字符串,指定输出格式,默认值为 %.1f
。
示例
以下是 Python 中使用 naturalsize()
的示例:
import humanize
file_size = 123456789
print(f"文件大小: {humanize.naturalsize(file_size)}")
print(f"文件大小(二进制): {humanize.naturalsize(file_size, binary=True)}")
print(f"文件大小(GNU): {humanize.naturalsize(file_size, gnu=True)}")
print(f"文件大小(自定义格式): {humanize.naturalsize(file_size, format='%.2f')}")
输出
文件大小: 123.5 MB
文件大小(二进制): 117.7 MiB
文件大小(GNU): 117.7M
文件大小(自定义格式): 123.46 MB
日期时间工具
Python 中的 Humanize 包提供了多种工具,使得日期和时间更加易读。这些工具将日期时间对象转换为更易于人类理解的格式,如相对时间、自然日期等。以下是 Humanize 包提供的日期时间工具的详细介绍:
自然时间
自然时间工具将日期时间对象转换为人类可读的相对时间,如 “2 天前”,“3 小时前”。以下是自然时间的一个示例:
import humanize
from datetime import datetime, timedelta
past_date = datetime.now() - timedelta(days=2)
print(humanize.naturaltime(past_date))
输出
2 days ago
自然日期
自然日期工具将特定日期格式化为易读的形式,如 "2024 年 7 月 11 日"。以下是示例:
import humanize
from datetime import datetime
some_date = datetime(2022, 7, 8)
print(humanize.naturaldate(some_date))
输出
Jul 08 2022
自然日
自然日工具通过考虑今天的日期来提供日期的人类可读表示,例如 “今天”,“明天”,“昨天” 等。以下是示例:
import humanize
from datetime import datetime, timedelta
today = datetime.now()
tomorrow = today + timedelta(days=1)
print(humanize.naturalday(today))
print(humanize.naturalday(tomorrow))
输出
today
tomorrow
精确时间差
精确时间差工具将时间间隔分解为天、小时、分钟和秒,并转换为人类可读的字符串。以下是示例:
import humanize
from datetime import timedelta
duration = timedelta(days=2, hours=3, minutes=30)
print(humanize.precisedelta(duration))
输出
2 days, 3 hours and 30 minutes
时间间隔工具
Python 中的 Humanize 包还包括了时间间隔工具,用于将时间间隔转换为人类可读的格式。这些工具有助于以一种用户能够理解和有意义的方式来呈现时间间隔。以下是 Humanize 包提供的时间间隔工具概述:
使用 naturaldelta()
进行时间间隔格式化
naturaldelta()
函数将时间间隔转换为人类可读的字符串,以自然语言的形式描述时间间隔,如 “2 小时前”,“3 天后”。
示例
以下是使用 Python Humanize 包中 naturaldelta()
函数的示例:
from datetime import timedelta
import humanize
delta1 = timedelta(days=3, hours=5)
print(f"时间间隔: {humanize.naturaldelta(delta1)} from now")
delta2 = timedelta(hours=5)
print(f"未来时间间隔: in {humanize.naturaldelta(delta2)}")
delta3 = timedelta(days=1, hours=3)
print(f"过去时间间隔: {humanize.naturaldelta(delta3)} ago")
输出
时间间隔: 3 days from now
未来时间间隔: in 5 hours
过去时间间隔: a day ago