humanize 是一個輕量級 Python 庫,用于將數字、時間、文件大小等內容轉換為更符合人類閱讀習慣的自然語言格式。例如,將 15320 轉換為 "15.3k",或將 datetime 轉換為 "3 minutes ago"。該庫在日志展示、儀表盤、命令行工具、數據可視化報告等場景中非常常見,能夠顯著提升輸出內容的可讀性。
安裝 :
pip install humanize常見應用場景:
(1)日志系統增強可讀性
輸出“5 minutes ago”、“1.2 GB used”。
(2)后臺系統或儀表盤展示
將 KPI 或統計數字轉成更直觀的表達。
(3)命令行工具(CLI)
例如安裝器顯示“3 files processed”、“14 minutes remaining”。
(4)Web API 輸出格式化
將響應中的數字轉為可讀格式(如流量、計數)。
(5)數據分析報告
讓統計結果更加貼近用戶語言習慣。
◆ ◆ ◆
核心概念
1、數字人性化(Number Humanization)
如 intword(), intcomma(), fractional() 等用于增強數字可讀性。
2、文件大小格式化(File Size)
如 naturalsize() 能自動選擇合適單位(KB、MB、GB)。
3、時間表達式(Time Delta & Date)
如 naturaltime(), naturaldate() 可將時間轉換為自然語言。
4、語言表達格式(Language & Inflection)
如 ordinal()、apnumber() 等用于自然語言表達語義。
5、國際化(i18n)
支持部分語言(如英語、西班牙語等),可通過 activate(locale) 切換語言。
◆ ◆ ◆
應用舉例
例 1:用自然語言表示時間
# 輸出: "3 hours ago"例 2:將數字轉換為更易讀的格式
# "1.5 million"例 3:添加千位分隔符
# "123,456,789"例 4:格式化文件大小
# "123.5 MB"例 5:序數表達(1st, 2nd, 3rd)
# "23rd"◆ ◆ ◆
常用函數速覽
naturalsize(value, binary=False, gnu=False, format="%.1f")
將字節數轉換為人類可讀的文件大小。
參數:
value:數值(字節)。
binary:是否使用二進制單位(KiB、MiB)。
gnu:是否輸出 GNU 風格單位。
format:格式化字符串。
返回:表示大小的字符串。
intcomma(value)
為整數添加千分位分隔符。
參數:
value:整數或可轉換為整數的值。
返回:帶逗號分隔的字符串。
intword(value, format="%.1f")
用“thousand/million/billion”格式化大數字。
參數:
value:數字。
format:格式模板。
返回:使用單位表示的大數字字符串。
naturaltime(value)
將時間差轉換為自然語言(如 “2 minutes ago”)。
參數:
value:datetime 或 timedelta。
返回:自然語言時間表達式字符串。
ordinal(value)
把數字轉換為序數(1st、2nd、3rd)。
參數:
value:整數。
返回:序數字符串。
apnumber(value)
將 1~9 轉為英文單詞(one, two…)。
參數:
value:整數。
返回:英文數字詞(或原數字)。
activate(locale)
切換自然語言區域設置。
參數:
locale:語言代碼(如 "en","es")。
返回:無。
◆ ◆ ◆
補充說明
(1)humanize 默認使用英文,但支持擴展語言。
(2)在 Web 框架中可直接用于模板(如 Flask + Jinja2)。
(3)處理大數字與時間時,比手寫格式化邏輯更可靠。
(4)零依賴,適合嵌入小型腳本或 CLI 工具。
小結
humanize 是一個專為“讓數據更易讀”而生的小巧實用庫。無論是數字、時間還是文件大小,它都能自動轉換為自然語言格式,使日志、報告、命令行工具或儀表盤輸出更加直觀、友好。該庫零配置、零依賴,支持常見格式化需求,并提供國際化能力,是 Python 開發者提升輸出可讀性和專業度的高效工具。
![]()
“點贊有美意,贊賞是鼓勵”
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.