tabulate学习

tabulate学习

一、什么是tabulate

tabulate是 Python 打印格式化表格的库,支持列表、字典、DataFrame 等数据,输出美观的控制台表格,支持 markdown、html、latex、grid 等十几种格式。比较适用于命令行输出表格类型。

使用的初衷是因为笔者喜欢使用markdown做笔记,但是python输出的表格类型的结果整理到markdown比较麻烦

二、下载

bash 复制代码
pip install tabulate

三、输出表格

python 复制代码
from tabulate import tabulate

data = [
    ["001", "你是1", "厉害的1"],
    ["002", "你是2", "厉害的2"],
    ["003", "你是3", "厉害的3"]
]
# 表头
headers = ["编号", "列1", "列2"]

# 打印表格
print(tabulate(data, headers=headers, tablefmt="grid"))

输出结果如下

tex 复制代码
+------+------+------+
|   编号 | 列1   | 列2   |
+======+======+======+
|  001 | 你是1  | 厉害的1 |
+------+------+------+
|  002 | 你是2  | 厉害的2 |
+------+------+------+
|  003 | 你是3  | 厉害的3 |
+------+------+------+

支持的类型

参数 效果 适用场景
simple 极简横线 快速调试
grid 实线边框 控制台日志
fancy_grid 美化圆角边框 展示输出
github Markdown 表格 无自动对齐空格,所有单元格紧贴竖线
pipe Markdown 表格 全去掉多余空格,最小体积,纯管道分隔
html HTML 表格 网页输出
latex Latex 代码 论文报告(latex 格式)

四、可以整理的表格类型

4.1 二维列表类型

4.2 字典类型

python 复制代码
from tabulate import tabulate

data = [{'编号': '001', '列1': '你是1', '列2': '厉害的1'},
        {'编号': '002', '列1': '你是2', '列2': '厉害的2'},
        {'编号': '003', '列1': '你是3', '列2': '厉害的3'}]

# 打印表格
print(tabulate(data, headers='keys', tablefmt="fancy_grid"))

4.3 DataFrame类型

python 复制代码
from tabulate import tabulate
import pandas

data = pandas.DataFrame({
    "编号": ["001", "002", "003"],
    "列1": ["你是1", "你是2", "你是3"],
    "列2": ["厉害的1", "厉害的2", "厉害的3"]
})

# 打印表格 , showindex=False  不输出行索引
print(tabulate(data, headers='keys', tablefmt="fancy_grid", showindex=False))

五、常用参数

  1. showindex=True/False:是否显示行号

    python 复制代码
    print(tabulate(data, headers=headers, showindex=True))
  2. numalign="left"/"right"/"center":数字对齐方式

  3. stralign="center":文字居中

    python 复制代码
    print(tabulate(data, headers=headers, stralign="center", numalign="center"))
  4. floatfmt=".2f":浮点数保留 2 位小数

    python 复制代码
    data = [["A", 1234.567], ["B", 89.1]]
    print(tabulate(data, headers=["列1","列2"], floatfmt=".2f"))
  5. maxcolwidths=10,20,8:限制每列最大宽度,长文本自动换行

    python 复制代码
    print(tabulate(data, headers=headers, maxcolwidths=[8, 30, 10]))
相关推荐
小雪崩2 小时前
嵌入式学习 day61-62:IMX6ULL驱动——系统移植
学习
一隅论数智2 小时前
OWL(Web Ontology Language)介绍与使用举例(二)
大数据·经验分享·笔记·学习·自然语言处理·学习方法·政务
我命由我123452 小时前
Photoshop - Photoshop 使用内容识别填充移除对象
学习·职场和发展·产品运营·求职招聘·职场发展·学习方法·photoshop
梓雨枔3 小时前
JavaScript+快速学习,简单好用~
javascript·学习
老王爱玩车4 小时前
自定义类型:结构体
c语言·开发语言·学习
JWASX5 小时前
Java 转 go 学习 - GRPC(1)
学习·golang
鬼手点金5 小时前
opencode-全能开发者配置
java·linux·服务器·前端·javascript·学习·前向传播
代码山河6 小时前
Java学习路线图:2026年最新版,从入门到架构师
java·学习·架构·教程·面向对象·项目
sunoo-2296 小时前
【嵌入式Linux驱动学习】Day1-Day2 全流程梳理:环境搭建→U-Boot→内核→根文件系统→驱动基础
linux·运维·驱动开发·笔记·学习·阿里云·恩智浦
我命由我123456 小时前
Photoshop - Photoshop 使用简单的选择工具
学习·职场和发展·产品运营·求职招聘·职场发展·学习方法·photoshop