prettytable:表格输出神器,数据展示更美观!

文摘   2024-11-01 14:46   广东  

▼点击下方卡片关注我


▲点击上方卡片关注我

处理数据时,直接打印列表或字典常常杂乱无章,让人头大。Python里有个好东西 - prettytable ,专门用来搞定表格式输出,分分钟就能把数据整理得整整齐齐的。不管是做数据分析还是写命令行工具,这都是个特别好使的模块。


安装配置

直接用pip装就行: 


1pip install prettytable

基础用法

来看个最简单的例子: 


1from prettytable import PrettyTable
3# 创建表格对象
4table = PrettyTable()
6# 设置表头
7table.field_names = [“名字”, “年龄”, “城市”]
9# 添加数据
10table.add_row([“小明”, 18, “北京”])
11table.add_row([“小红”, 20, “上海”])
12table.add_row([“小张”, 19, “广州”])
14print(table)

输出效果:


asciidoc 


1+--------+------+--------+
2| 名字 | 年龄 | 城市 |
3+--------+------+--------+
4| 小明 | 18 | 北京 |
5| 小红 | 20 | 上海 |
6| 小张 | 19 | 广州 |
7+--------+------+--------+

瞧瞧,数据立马变得清清爽爽的。


⚠️ 小贴士:


  • 表头用field_names设置,得是list类型
  • add_row添加数据时要跟表头数量对应上
  • 中文显示没问题,自动对齐


花式定制

这表格还能玩出花来: 


1table = PrettyTable()
2table.field_names = [“商品”, “价格”, “库存”]
4# 设置对齐方式
5table.align[“商品”] = “l” # 左对齐
6table.align[“价格”] = “r” # 右对齐
7table.align[“库存”] = “c” # 居中
9# 添加数据
10table.add_row([“笔记本电脑”, 4999, 50])
11table.add_row([“鼠标”, 99, 200])
12table.add_row([“键盘”, 299, 100])
14# 设置表格样式
15table.border = True # 显示边框
16table.header = True # 显示表头
17table.padding_width = 2 # 填充宽度
19print(table)

从列表导入

要是数据本来就是列表格式的,还能直接导进去: 


1data = [
2 [“手机”, 2999, “已售罄”],
3 [“平板”, 3999, “有货”],
4 [“耳机”, 999, “有货”]
5]
7table = PrettyTable()
8table.field_names = [“商品”, “价格”, “状态”]
9table.add_rows(data) # 注意这里是add_rows,不是add_row
11print(table)

⚠️ 小贴士:


  • add_row和add_rows不一样,一个加单行,一个加多行
  • 从列表导入超方便,但得保证数据格式统一


排序显示

数据也能排序,简直不要太爽: 


1table = PrettyTable()
2table.field_names = [“商品”, “销量”, “评分”]
3table.add_row([“商品A”, 100, 4.5])
4table.add_row([“商品B”, 200, 4.2])
5table.add_row([“商品C”, 150, 4.8])
7# 按销量排序
8print(“按销量排序:”)
9table.sortby = “销量”
10print(table)
12# 按评分逆序排序
13print(“\n按评分逆序排序:”)
14table.sortby = “评分”
15table.reversesort = True
16print(table)

⚠️ 小贴士:


  • sortby指定排序字段,必须是表头中有的
  • reversesort设为True就是降序,False就是升序
  • 数字类型会自动按大小排,字符串按字母顺序排


实际开发中经常要处理各种数据,用prettytable搞定表格输出分分钟的事。不过要记得,这玩意主要是用来展示,不是用来处理数据的,数据处理还是得用pandas这些专业工具。


⚠️ 小贴士:


  • 表格宽度会自动适应内容
  • 中文字符可能需要额外考虑对齐问题
  • 数据量特别大的时候性能会差点
  • 输出到文件记得用UTF-8编码


代码写好了,下回查数据库或者写报表,就能把数据显示得特别清爽了。


往期回顾

◆ PyQt:桌面应用开发神器,让你的GUI更出彩!

◆ 用Python实现设计模式:23种模式全解析

◆ 一文教会你用Python训练专属AI模型...

点赞分享

流向你

第二世界的趣事
“在‘精神世界的趣事’中,我们一同探索心灵深处的奥秘。每一篇文章都是一次心灵的旅行,带你发现自我,理解他人,享受不一样的精神的盛宴。
 最新文章