news 2026/8/1 21:18:25

humanize API全解析:开发者必备的参数与使用技巧

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
humanize API全解析:开发者必备的参数与使用技巧

humanize API全解析:开发者必备的参数与使用技巧

【免费下载链接】humanizePython humanize functions项目地址: https://gitcode.com/gh_mirrors/human/humanize

humanize是一个强大的Python库,提供了丰富的人性化处理函数,能将数字、时间、文件大小等数据转换为更易读的格式。无论是开发用户界面还是生成报告,掌握这些API都能让你的应用更具专业感和用户友好性。

核心功能概览 🚀

humanize库的核心功能集中在几个关键模块中,每个模块都针对特定类型的数据处理:

  • 文件大小处理:src/humanize/filesize.py
  • 时间格式化:src/humanize/time.py
  • 数字处理:src/humanize/number.py
  • 国际化支持:src/humanize/i18n.py
  • 列表格式化:src/humanize/lists.py

文件大小转换:naturalsize详解

naturalsize函数是处理文件大小的利器,能将字节数转换为人类可读的格式。其定义如下:

def naturalsize( value: NumberOrString, binary: bool = False, gnu: bool = False, format: str | None = None, precision: int | None = None, ) -> str:

关键参数

  • binary:设置为True时使用二进制前缀(KiB、MiB),默认使用十进制(KB、MB)
  • precision:控制小数点后显示的位数
  • gnu:启用GNU风格,在小于1024时显示字节数

实用示例

naturalsize(3000000) # 输出 '3.0 MB' naturalsize(3000, False, True) # 输出 '3.0K' naturalsize(10**28) # 输出 '10.0 YB'

时间处理:naturaltime与naturaldelta

naturaltime:智能时间描述

naturaltime函数能将时间戳转换为自然语言描述,如"3分钟前"或"2小时后"。

def naturaltime( value: dt.datetime | dt.timedelta | float, future: bool = False, months: bool = True, minimum_unit: str = "seconds", when: dt.datetime | None = None, ) -> str:

核心参数

  • minimum_unit:设置最小时间单位(seconds/minutes/hours等)
  • when:自定义参考时间,默认为当前时间
  • months:是否启用月份级别的精度

naturaldelta:时间差格式化

对于时间间隔的处理,naturaldelta提供了清晰的描述方式:

def naturaldelta( value: dt.timedelta | float, minimum_unit: str = "seconds", precision: int = 0, suppress: Iterable[str] | None = None, format: str | None = None, ) -> str:

使用场景

  • 显示任务执行时间
  • 计算两个事件之间的间隔
  • 倒计时功能实现

数字格式化:让数字更易读

ordinal:序数转换

ordinal函数将数字转换为序数形式,支持多语言性别规则:

def ordinal(value: NumberOrString, gender: str = "male") -> str:

示例

ordinal(1) # 输出 '1st' ordinal(2, gender="female") # 输出 '2nd'(部分语言有性别差异)

intcomma:千位分隔符

为大数字添加千位分隔符,提升可读性:

def intcomma(value: NumberOrString, ndigits: int | None = None) -> str:

示例

intcomma(1234567) # 输出 '1,234,567' intcomma(1234.567, ndigits=2) # 输出 '1,234.57'

国际化支持:多语言处理

humanize提供了完善的国际化支持,通过i18n.py模块实现:

def activate(locale: str, path: str | pathlib.Path | None = None) -> None: def deactivate() -> None:

支持的语言

  • 中文:src/humanize/locale/zh_CN/LC_MESSAGES/humanize.po
  • 英文:src/humanize/locale/en/LC_MESSAGES/humanize.po
  • 日文:src/humanize/locale/ja_JP/LC_MESSAGES/humanize.po
  • 更多语言:src/humanize/locale/

使用方法

activate('zh_CN') # 激活中文本地化 naturaltime(datetime.now() - timedelta(days=1)) # 输出 '1天前'

实用技巧与最佳实践

1. 安装与配置

通过pip安装humanize:

pip install humanize

2. 组合使用函数

结合多个函数创建更丰富的格式化效果:

# 格式化文件大小和修改时间 def format_file_info(size, mtime): return f"文件大小: {naturalsize(size)}, 修改于: {naturaltime(mtime)}"

3. 自定义格式

通过format参数自定义输出格式:

naturalsize(3000, format="%.3f") # 输出 '3.000 KB'

总结

humanize库为Python开发者提供了全面的人性化数据格式化解决方案,通过简单直观的API,就能让你的应用呈现专业级的用户体验。无论是处理时间、数字还是文件大小,这些工具函数都能大大减少开发工作量,同时提升输出质量。

要深入了解更多功能,可以查阅官方文档:docs/,或查看源代码中的详细注释。


获取项目

git clone https://gitcode.com/gh_mirrors/human/humanize

【免费下载链接】humanizePython humanize functions项目地址: https://gitcode.com/gh_mirrors/human/humanize

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/1 21:12:05

计算机单片机毕设实战-基于单片机音频解析的 LED 彩灯喷泉装置开发 基于无线蓝牙的音乐同步声光喷泉硬件系统设计(017301)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战 ✌️…

作者头像 李华
网站建设 2026/8/1 21:11:31

【Codex 深度掌控:从入门到企业级多模型部署】05:Codex 性能急救:清理历史会话彻底解决启动卡顿

【Codex 深度掌控:从入门到企业级多模型部署】05:Codex 性能急救:清理历史会话彻底解决启动卡顿 摘要:Codex 用久了启动慢得像蜗牛?别急着重装,十有八九是历史会话在捣鬼。本文从现象诊断入手,带你用任务管理器精准定位“元凶”——codex-server 进程;接着深入 SQLite …

作者头像 李华
网站建设 2026/8/1 21:09:50

【Bug已解决】[Feature] Save model-only feature in `save_state` 解决方案

【Bug已解决】[Feature] Save model-only feature in save_state 解决方案 一、现象长什么样 用 accelerator.save_state("ckpt") 保存训练状态时,发现它把优化器、学习率调度器、RNG 状态全打包了: 一个 7B 模型(权重 14GB fp16&a…

作者头像 李华
网站建设 2026/8/1 21:08:43

QuickLib核心功能全解析:AutoMapper、LinQ、IOC如何简化你的代码

QuickLib核心功能全解析:AutoMapper、LinQ、IOC如何简化你的代码 【免费下载链接】QuickLib Quick development library (AutoMapper, LinQ, IOC Dependency Injection, MemoryCache, Scheduled tasks, Json and Yml Config and Options pattern, Serializers, etc)…

作者头像 李华
网站建设 2026/8/1 21:06:47

5步搭建个人微信公众号RSS聚合器:告别碎片化阅读

5步搭建个人微信公众号RSS聚合器:告别碎片化阅读 【免费下载链接】wewe-rss 🤗更优雅的微信公众号订阅方式,支持私有化部署、微信公众号RSS生成(基于微信读书) 项目地址: https://gitcode.com/GitHub_Trending/we/we…

作者头像 李华
网站建设 2026/8/1 21:04:20

4种开源激活技术对比:MAS如何让Windows和Office授权更透明?

4种开源激活技术对比:MAS如何让Windows和Office授权更透明? 【免费下载链接】Microsoft-Activation-Scripts Open-source Windows and Office activator featuring HWID, Ohook, TSforge, and Online KMS activation methods, along with advanced troub…

作者头像 李华