Prettytable —— 一个Python中非常有用的表格输出库

文摘   2024-11-10 08:37   上海  

大家好!我是风哥,一个喜欢钻研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(["小明"1895])
4table.add_row(["小红"2088])
5table.add_row(["小张"1992])
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开发秘籍!


py学习基地ai
分享生活百态,情感故事,了解不一样的人生
 最新文章