介紹如何在 Python 中使用 humanize
模組,將數字轉為比較容易閱讀的格式或表示方式。
Python 的 humanize 模組可以用來將數字轉換為一般人慣用的表達方式,以下是各種不同應用的使用範例與程式碼。
humanize
模組humanize
模組可以使用 pip
來安裝:
# 安裝 humanize 模組
pip install humanize
humanize
所提供的 naturalsize
函數可以用來將代表檔案大小的數字(原始單位為 Bytes
)轉換為 KB
、MB
、GB
、TB
等適合的單位:
import humanize # 將檔案大小轉為適合的單位 size = humanize.naturalsize(5000000) print(size)
5.0 MB
# 將檔案大小轉為適合的單位 size = humanize.naturalsize(1230000000) print(size)
1.2 GB
humanize
的 scientific
函數可以將數字轉為科學記號的表示法,而且輸出的排版也非常人性化:
import humanize # 將數字以科學記號表示 sci = humanize.scientific(2000) print(sci)
2.00 x 10³
# 指定表示的小數位數 sci = humanize.scientific(1234500000, precision = 5) preprint(sci)
1.23450 x 10⁹
humanize
的 fractional
函數可以將小數轉為最接近且容易閱讀的分數:
import humanize # 將小數轉為相近易閱讀的分數 frac = humanize.fractional(0.34849) print(frac)
23/66
# 將小數轉為相近易閱讀的分數 frac = humanize.fractional(0.3333) print(frac)
1/3
若遇到日期或時間的資料,可以使用 humanize
提供的 naturaldate
、naturaltime
、naturalday
函數來轉為比較容易閱讀的資訊:
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
如果是時間區間,則可使用 naturaldelta
或 precisedelta
函數來轉為易閱讀格式:
# 將時間間隔轉為易閱讀格式(近似值) 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