Categories: Python

Python 使用 humanize 模組將數字轉為容易閱讀格式教學與範例

介紹如何在 Python 中使用 humanize 模組,將數字轉為比較容易閱讀的格式或表示方式。

Python 的 humanize 模組可以用來將數字轉換為一般人慣用的表達方式,以下是各種不同應用的使用範例與程式碼。

安裝 humanize 模組

humanize 模組可以使用 pip 來安裝:

# 安裝 humanize 模組
pip install humanize

檔案大小

humanize 所提供的 naturalsize 函數可以用來將代表檔案大小的數字(原始單位為 Bytes)轉換為 KBMBGBTB 等適合的單位:

import humanize

# 將檔案大小轉為適合的單位
size = humanize.naturalsize(5000000)
print(size)
5.0 MB
# 將檔案大小轉為適合的單位
size = humanize.naturalsize(1230000000)
print(size)
1.2 GB

科學記號

humanizescientific 函數可以將數字轉為科學記號的表示法,而且輸出的排版也非常人性化:

import humanize

# 將數字以科學記號表示
sci = humanize.scientific(2000)
print(sci)
2.00 x 10³
# 指定表示的小數位數
sci = humanize.scientific(1234500000, precision = 5)
preprint(sci)
1.23450 x 10⁹

小數轉為分數

humanizefractional 函數可以將小數轉為最接近且容易閱讀的分數:

import humanize

# 將小數轉為相近易閱讀的分數
frac = humanize.fractional(0.34849)
print(frac)
23/66
# 將小數轉為相近易閱讀的分數
frac = humanize.fractional(0.3333)
print(frac)
1/3

日期與時間

若遇到日期或時間的資料,可以使用 humanize 提供的 naturaldatenaturaltimenaturalday 函數來轉為比較容易閱讀的資訊:

import humanize
import datetime as dt

# 將日期轉為易閱讀格式
date = humanize.naturaldate(dt.date(2002, 6, 3))
print(date)
Jun 03 2002
# 將時間轉為易閱讀格式
time = humanize.naturaltime(dt.datetime.now() - dt.timedelta(seconds=3600))
print(time)
an hour ago
# 將日期轉為易閱讀格式
day = humanize.naturalday(dt.datetime.now() - dt.timedelta(days=1))
print(day)
yesterday

如果是時間區間,則可使用 naturaldeltaprecisedelta 函數來轉為易閱讀格式:

# 將時間間隔轉為易閱讀格式(近似值)
delta = humanize.naturaldelta(dt.timedelta(seconds=8633, days=202))
print(delta)
6 months
# 將時間間隔轉為易閱讀格式(精確值)
delta = humanize.precisedelta(dt.timedelta(seconds=8633, days=202))
print(delta)
6 months, 19 days, 2 hours, 23 minutes and 53 seconds

各種整數表示法

以下是 humanize 提供的各種整數表示方法:

import humanize

# 將數字加入逗號表示
comma = humanize.intcomma(123456789)
print(comma)
123,456,789
# 將數字轉為易閱讀格式
word = humanize.intword(123456789)
print(word)
123.5 million
# 將數字轉為英文
number = humanize.apnumber(7)
print(number)
seven

參考資料

Share
Published by
Office Guide

Recent Posts

Python 使用 PyAutoGUI 自動操作滑鼠與鍵盤

本篇介紹如何在 Python ...

1 年 ago

Ubuntu Linux 以 WireGuard 架設 VPN 伺服器教學與範例

本篇介紹如何在 Ubuntu ...

1 年 ago

Linux 網路設定 ip 指令用法教學與範例

本篇介紹如何在 Linux 系...

1 年 ago

Linux 以 Cryptsetup、LUKS 加密 USB 隨身碟教學與範例

介紹如何在 Linux 系統中...

1 年 ago