Tabulate:输出漂亮表格排版的 Python 库

什么是 Tabulate
Tabulate 是一个「一行代码」搞定表格排版的 Python 库,兼顾命令行工具。

  • 纯 Python 实现,支持 Python3
  • 只要 from tabulate import tabulate,传入列表、字典、Pandas DataFrame 都能直接转成好看的文本表格
  • CLI 也自带 tabulate 命令,直接在终端里处理 CSV、TSV、空白分隔都没问题


平时打印表格,常见的问题:

  • 手动拼接字符串,列宽不对齐,数字小数点对不齐
  • Markdown、RST、HTML、LaTeX……各种格式对应不同写法,切换累
  • 多列混合文字和数字,文本左对齐、数字右对齐,还能按小数点对齐?写死代码麻烦
  • 想在终端里快速查看 CSV,得先写脚本或打开 Excel

Tabulate 一次搞定:

  • 智能探测数字 vs 文本,自动对齐(还支持按小数点对齐)
  • 支持 30+ 种输出格式:plainsimplegithubgridpipehtmllatex_booktabs……随你切
  • 参数丰富:自定义行号、列名称、数字格式化、宽度自动换行、多行单元格、分隔线……
  • 不用脑子,直接一个函数,格式全交给它

 

安装 :

pip install tabulate
# 或者只装库,不装命令行:
TABULATE_INSTALL=lib-only pip install tabulate

 

使用:

from tabulate import tabulate

data = [
    ["苹果", 696000, 1.9891e+09],
    ["香蕉", 6371, 5.9736e+03],
    ["橘子", 1737, 7.35],
    ["桃子", 3390, 6.4185e+02]
]


# 默认格式
print(tabulate(data))

加个表头 & 换成 GitHub 风格  

from tabulate import tabulate

data = [
    ["苹果", 696000, 1.9891e+09],
    ["香蕉", 6371, 5.9736e+03],
    ["橘子", 1737, 7.35],
    ["桃子", 3390, 6.4185e+02]
]


headers = ["名称", "重量 (km)", "数量 (10^24 kg)"]
print(tabulate(data, headers=headers, tablefmt="github", floatfmt=".2f"))

 

常见高级玩法

  • showindex=True:给表格加行号
  • numalign="decimal":数字小数点对齐
  • colalign=("left","center","right"):按列自定义对齐
  • floatfmt=".3e" / intfmt=",":数字格式化
  • tablefmt="fancy_grid":各种伪图形边框,一秒炫酷
from tabulate import tabulate

data = [
    ["苹果", 696000, 1.9891e+09],
    ["香蕉", 6371, 5.9736e+03],
    ["橘子", 1737, 7.35],
    ["桃子", 3390, 6.4185e+02]
]


headers = ["名称", "重量 (km)", "数量 (10^24 kg)"]
print(tabulate(data, headers=headers, tablefmt="fancy_grid", floatfmt=".2f", showindex=True, numalign="decimal",
               colalign="left"))

 

参数名 类型 说明 示例值
data list / dict / DataFrame / NumPy array 要格式化的数据 [[1, 'Alice', 25], [2, 'Bob', 30]]
headers str 或 list 表头,可以是:'firstrow'(第一行作为表头)、'keys'(字典键作为表头)、或自定义列表 ['ID', 'Name', 'Age']
tablefmt str 表格样式 'grid''plain''simple''pipe''html''latex''github' 等
colalign list 列对齐方式 ['left', 'center', 'right']
numalign str 数字对齐方式 'left', 'center', 'right'
stralign str 字符串对齐方式 'left', 'center', 'right'
floatfmt str 浮点数格式 '.2f'(保留两位小数)  【'.2f', '.3g', 'e'
missingval str 缺失值显示内容 'N/A'














 

posted @ 2025-07-22 10:37  北京测试菜鸟  阅读(483)  评论(0)    收藏  举报