首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

PrettyTable,一个美观表格的 Python 库!

关注我们

最近在写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,保准你会爱上它!

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OabeQTgWi_H5Ppr5kV18MS0w0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券