关注我们
最近在写Python程序的时候,遇到了一个烦人的问题。我需要在终端里输出一堆数据,但是直接print出来看着就跟一盘炒面似的,乱糟糟的。正当我抓耳挠腮的时候,突然想起来有个叫PrettyTable的库,可以帮我们轻松搞定这种情况。今天就来聊聊这个好用的小玩意儿。
PART01
PrettyTable是个啥?
简单来说,PrettyTable就是一个能让你在终端里画出漂亮表格的Python库。它能把你的数据整理得井井有条,看起来就像个正经的表格一样。不管是横着看还是竖着看,都能一目了然。
来看个例子:
运行这段代码,你就能看到一个漂亮的表格:
+------+------+------+| 名字 | 年龄 | 城市 |+------+------+------+| 小明 | 18 | 北京 || 小红 | 20 | 上海 || 小刚 | 22 | 广州 |+------+------+------+
是不是比直接print要好看多了?
PART02
怎么用PrettyTable?
用PrettyTable其实很简单,跟玩积木差不多。先搭个框架,再往里面填东西。
你得安装这个库:
pip install prettytable
在你的代码里import它:
from prettytable import PrettyTable
接着,创建一个PrettyTable对象:
table = PrettyTable()
设置表头:
添加数据行:
table.add_row([“数据1”, “数据2”, “数据3”])
打印出来就行了:
print(table)
就这么简单!
PART03
PrettyTable的一些花里胡哨的功能
PrettyTable还有一些额外的功能,可以让你的表格更加炫酷。
自定义对齐方式
你可以设置每一列的对齐方式,左对齐、右对齐或居中对齐都行:
table.align[“列1”] = “l” # 左对齐table.align[“列2”] = “c” # 居中对齐table.align[“列3”] = “r” # 右对齐
设置表格样式
想要你的表格看起来更有格调?试试这个:
这样你的表格就会变成Word风格的。还有其他风格可以选择,比如PLAIN_COLUMNS、MARKDOWN等。
排序
如果你想对表格进行排序,也很容易:
table.sortby = “年龄” # 按年龄排序table.reversesort = True # 倒序排列
温馨提示:排序之前确保你的表格里有“年龄”这一列哦,不然会报错的。
只显示部分列
有时候你可能只想显示某几列:
print(table.get_string(fields=[“名字”, “年龄”]))
这样就只会显示“名字”和“年龄”两列了。
PART04
实际应用场景
PrettyTable在很多情况下都能派上用场。比如:
数据分析:当你处理完数据后,用PrettyTable可以清晰地展示结果。
日志输出:如果你的程序需要输出一些结构化的日志,用PrettyTable来格式化会更清晰。
命令行工具:如果你在开发一个命令行工具,PrettyTable可以帮你漂亮地展示输出结果。
测试报告:在进行单元测试时,可以用PrettyTable来整理和展示测试结果。
来个实际的例子吧,假设你在做一个学生成绩管理系统:
from prettytable import PrettyTabledef calculate_average(scores): return sum(scores) / len(scores)students = [ {“name”: “小明”, “math”: 85, “english”: 92, “science”: 78}, {“name”: “小红”, “math”: 92, “english”: 88, “science”: 95}, {“name”: “小刚”, “math”: 78, “english”: 85, “science”: 80}]table = PrettyTable()table.field_names = [“姓名”, “数学”, “英语”, “科学”, “平均分”]for student in students: average = calculate_average([student[“math”], student[“english”], student[“science”]]) table.add_row([student[“name”], student[“math”], student[“english”], student[“science”], f“{average:.2f}”])table.align = “r” # 所有列右对齐table.align[“姓名”] = “l” # 姓名列左对齐print(table)
运行这段代码,你就能看到一个漂亮的成绩表:
+------+------+------+------+--------+| 姓名 | 数学 | 英语 | 科学 | 平均分 |+------+------+------+------+--------+| 小明 | 85 | 92 | 78 | 85.00 || 小红 | 92 | 88 | 95 | 91.67 || 小刚 | 78 | 85 | 80 | 81.00 |+------+------+------+------+--------+
这样一来,学生的成绩就一目了然了。
PrettyTable就是这么好用。它能让你的数据看起来更专业,更容易理解。下次再遇到需要在终端输出表格的情况,不妨试试PrettyTable,保准你会爱上它!
领取专属 10元无门槛券
私享最新 技术干货