大家好!我是风哥,一个喜欢钻研Python的工程师。今天要给大家介绍一个特别实用的库 —— PrettyTable,它能让你在命令行中输出漂亮的表格,让数据展示更加清晰直观!
基础使用
先安装这个库:
1pip install prettytable
来个最简单的示例:
1from prettytable import PrettyTable
2
3# 创建表格
4table = PrettyTable()
5# 设置表头
6table.field_names = ["姓名", "年龄", "城市"]
7# 添加数据
8table.add_row(["小明", 18, "北京"])
9table.add_row(["小红", 20, "上海"])
10table.add_row(["小张", 19, "广州"])
11
12print(table)
输出效果:
1+--------+------+--------+
2| 姓名 | 年龄 | 城市 |
3+--------+------+--------+
4| 小明 | 18 | 北京 |
5| 小红 | 20 | 上海 |
6| 小张 | 19 | 广州 |
7+--------+------+--------+
进阶用法
1. 一次添加多行数据
1table = PrettyTable()
2table.field_names = ["姓名", "年龄", "城市"]
3
4# 批量添加数据
5rows = [
6 ["小明", 18, "北京"],
7 ["小红", 20, "上海"],
8 ["小张", 19, "广州"]
9]
10table.add_rows(rows)
2. 设置对齐方式
1table = PrettyTable()
2table.field_names = ["姓名", "年龄", "城市"]
3
4# 左对齐
5table.align["姓名"] = "l"
6# 右对齐
7table.align["年龄"] = "r"
8# 居中(默认)
9table.align["城市"] = "c"
10
11# 所有列都居中
12table.align = "c"
3. 自定义样式
1table = PrettyTable()
2table.field_names = ["姓名", "成绩", "评级"]
3
4# 设置表格样式
5table.border = True # 显示边框
6table.header = True # 显示表头
7table.junction_char = "+" # 设置连接符
8table.hrules = True # 显示横线
9table.vrules = True # 显示竖线
10
11# 添加数据
12table.add_row(["小明", 95, "优秀"])
13table.add_row(["小红", 88, "良好"])
高级技巧
1. 从CSV文件导入数据
1from prettytable import from_csv
2
3with open("students.csv", "r", encoding="utf-8") as f:
4 table = from_csv(f)
5print(table)
2. 排序功能
1table = PrettyTable()
2table.field_names = ["姓名", "年龄", "分数"]
3table.add_row(["小明", 18, 95])
4table.add_row(["小红", 20, 88])
5table.add_row(["小张", 19, 92])
6
7# 按分数排序
8table.sortby = "分数"
9# 降序排列
10table.reversesort = True
11print(table)
3. 设置最大宽度
1table = PrettyTable()
2table.field_names = ["姓名", "介绍"]
3table.max_width["介绍"] = 30 # 设置最大宽度
4
5# 长文本会自动换行
6table.add_row(["小明", "这是一段很长的介绍文字,会自动换行显示"])
4. HTML输出
1table = PrettyTable()
2table.field_names = ["姓名", "成绩"]
3table.add_row(["小明", 95])
4table.add_row(["小红", 88])
5
6# 输出HTML格式
7html_table = table.get_html_string()
8print(html_table)
5. 自定义列标题样式
1from prettytable import MSWORD_FRIENDLY, PLAIN_COLUMNS
2
3table = PrettyTable()
4table.field_names = ["姓名", "成绩"]
5
6# 使用预设样式
7table.set_style(MSWORD_FRIENDLY)
8# 或者 PLAIN_COLUMNS 样式
9# table.set_style(PLAIN_COLUMNS)
实用小技巧
处理数据库查询结果:
1import sqlite3
2from prettytable import from_db_cursor
3
4# 连接数据库
5conn = sqlite3.connect('database.db')
6cursor = conn.cursor()
7
8# 执行查询
9cursor.execute('SELECT * FROM students')
10
11# 直接从游标创建表格
12table = from_db_cursor(cursor)
13print(table)
格式化输出字典数据:
1def print_dict_as_table(data_dict):
2 table = PrettyTable()
3 table.field_names = ["键", "值"]
4 for key, value in data_dict.items():
5 table.add_row([key, value])
6 return table
7
8# 使用示例
9student = {
10 "姓名": "小明",
11 "年龄": 18,
12 "城市": "北京"
13}
14print(print_dict_as_table(student))
今天的Python干货分享就到这里啦!这些都是我在实际开发中常用的技巧。动手试试,有问题随时在评论区问我。记得点赞收藏,下次给大家带来更多Python开发秘籍!