Python的PrettyTable模块的方法实现

 更新时间:2025年10月19日 11:39:06   作者:运维开发小白  
本文介绍了如何在Python中使用PrettyTable模块创建、格式化和操作表格,包括添加表头、行和列,临时添加列,指定行和列,设置对齐方式和边框样式,导入CSV和数据库数据,以及对表格进行排序和颜色定制,感兴趣的可以了解一下

1.PrettyTable介绍与基本使用

​ 在使用Python查询表格数据的时候,直接print出来的话。数据杂乱无章,这个使用就可以使用PrettyTable模块来解决这个问题。如下图:

这样在输出的窗口可以很清晰看到所需要的信息。那么类似这种表格要怎么做出来呢?没错,使用PrettyTable就会把事情变得很简单

2.PrettyTable的安装

pip3 install prettytable

3.PrettyTable的使用

1.添加表头、添加行、添加列

类似于数据库中的表,由表头(或者说字段名),以及每一行的内容组成。

# ======================
# -*-coding: Utf-8 -*-
# ======================
from prettytable import PrettyTable
# 传入的name,age,country相当于表头
td = PrettyTable(["name","age","country"])
# 调用add_row 添加行记录
td.add_row(["Michael","23","China"])
td.add_row(["Bob","24","USA"])
td.add_row(["Jack","25","UK"])
print(td)

2.临时添加一列

# ======================
# -*-coding: Utf-8 -*-
# ======================
from prettytable import PrettyTable
# 传入的name,age,country相当于表头
td = PrettyTable(["name","age","country"])
# 调用add_row 添加行记录
td.add_row(["Michael","23","China"])
td.add_row(["Bob","24","USA"])
td.add_row(["Jack","25","UK"])

td.add_column("gender",["male","male","female"])

print(td)

​ 输出内容是不是和 MySQL数据库类似呢。

​ 此外 prettytable 还支持从 csv、数据库、html 等数据源中导入数据,但说实话,从数据源读取数据我们一般使用 pandas,并且还会伴随着数据处理。而使用 prettytable 只是为了让程序中产生的信息,能够以结构化的形式打印,很少会从文件或数据库里面读数据

3.输出指定行、指定列

# ======================
# -*-coding: Utf-8 -*-
# ======================
from prettytable import PrettyTable
# 传入的name,age,country相当于表头
td = PrettyTable(["name","age","country"])
# 调用add_row 添加行记录
td.add_row(["Michael","23","China"])
td.add_row(["Bob","24","USA"])
td.add_row(["Jack","25","UK"])

td.add_column("gender",["male","male","female"])

# 只输出name和age列
# start 和 end 参数可以控制输出的起始和结束位置
print(td.get_string(fields=["name","age"],start=1,end=3))

4.设置对齐方式

# ======================
# -*-coding: Utf-8 -*-
# ======================
from prettytable import PrettyTable
# 传入的name,age,country相当于表头
td = PrettyTable(["name","age","country"])
# 调用add_row 添加行记录
td.add_row(["Michael","23","China"])
td.add_row(["Bob","24","USA"])
td.add_row(["Jack","25","UK"])

td.add_column("gender",["male","male","female"])

# l代表左对齐,c表示居中,r表示右对齐
td.align['name'] = "l"
td.align['age'] = 'c'
td.align['country'] = "r"
# 输出表格
print(td)

5.设置边框样式

在 PrettyTable 中,边框由三个部分组成:横边框,竖边框,和边框连接符,我们都可以修改

# ======================
# -*-coding: Utf-8 -*-
# ======================
from prettytable import PrettyTable
# 传入的name,age,country相当于表头
td = PrettyTable(["name","age","country"])
# 调用add_row 添加行记录
td.add_row(["Michael","23","China"])
td.add_row(["Bob","24","USA"])
td.add_row(["Jack","25","UK"])

td.add_column("gender",["male","male","female"])

# 是否显示边框,默认为True
td.border = True

# 横边框
td.horizontal_char = "^"
# 竖边框
td.vertical_char = '>'
# 边框连接符
td.junction_char = '~'

# 输出表格
print(td)

6.根据csv导入

prettytable支持从csv文件中导入数据并创建表格,需要注意的是,字符串需要加上引号

# ======================
# -*-coding: Utf-8 -*-
# ======================
from prettytable import from_csv
with open('test.csv') as f:
    table = from_csv(f)
print(table)

7.从数据库中导入

# ======================
# -*-coding: Utf-8 -*-
# ======================
import pymysql
from prettytable import from_db_cursor

connection = pymysql.connect(host='127.0.0.1', user='root', password='123456', port=3306, db='uniform_db')
cursor = connection.cursor()
cursor.execute("select * from uniform_a_v1 limit 10;")
mytable = from_db_cursor(cursor)
print(mytable)

8.表数据的删除

prettytable 提供四种方法用于删除数据

  • del_row:删除某行,允许传入一个整数参数.(从0开始)
  • del_column:删除某列,允许传入一个字符串,表示要删除的列的字段名
  • clear_rows:删除所有数据,但保存列的字段名
  • clear:删除所有数据,包括列的字段名

9.对表格进行排序

# ======================
# -*-coding: Utf-8 -*-
# ======================
from prettytable import PrettyTable
# 传入的name,age,country相当于表头
td = PrettyTable(["name","age","country"])
# 调用add_row 添加行记录
td.add_row(["Michael","23","China"])
td.add_row(["Bob","24","USA"])
td.add_row(["Jack","25","UK"])

td.add_column("gender",["male","male","female"])
# 按照某一列进行排序
print(td.get_string(sortby="age"))
# 按照某一列进行逆序排序
print(td.get_string(sortby="age",reversesort=True))

10.更改颜色属性

# ======================
# -*-coding: Utf-8 -*-
# ======================
from prettytable.colortable import ColorTable,Themes,Theme

x = ColorTable(theme = Themes.OCEAN)
# # ANSI颜色值设置具体参考:https://zh.wikipedia.org/wiki/ANSI%E8%BD%AC%E4%B9%89%E5%BA%8F%E5%88%97
# x = ColorTable(theme=Theme(default_color="33", # 黄色
#                             vertical_color="42", # 绿色
#                             horizontal_color="35", #紫色
#                             junction_color="41",)) # 红色

x.field_names = ["City name", "Area", "Population", "Annual Rainfall"]
# 添加每一行的数据
x.add_row(["Adelaide", 1295, 1158259, 600.5])
x.add_row(["Brisbane", 5905, 1857594, 1146.4])
x.add_row(["Darwin", 112, 120900, 1714.7])
x.add_row(["Hobart", 1357, 205556, 619.5])
x.add_row(["Sydney", 2058, 4336374, 1214.8])
x.add_row(["Melbourne", 1566, 3806092, 646.9])
x.add_row(["Perth", 5386, 1554769, 869.4])

print(x)

到此这篇关于Python的PrettyTable模块的方法实现的文章就介绍到这了,更多相关Python PrettyTable模块内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python的sys.path模块路径添加方式

    python的sys.path模块路径添加方式

    这篇文章主要介绍了python的sys.path模块路径添加方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03
  • 在Django中实现批量覆盖更新的示例代码

    在Django中实现批量覆盖更新的示例代码

    在使用Django进行开发时,数据的更新是一个常见的操作,有时候,我们需要对多个记录进行批量覆盖更新,这样可以提高效率,减少数据库的交互次数,本文将详细介绍如何在Django中实现批量覆盖更新,并提供示例代码来帮助你更好地理解这一过程,需要的朋友可以参考下
    2025-06-06
  • 详解Python中expandtabs()方法的使用

    详解Python中expandtabs()方法的使用

    这篇文章主要介绍了详解Python中expandtabs()方法的使用,是Python入门中的基础知识,需要的朋友可以参考下
    2015-05-05
  • Python按照某列内容对两个DataFrame进行合并操作方法

    Python按照某列内容对两个DataFrame进行合并操作方法

    这篇文章主要给大家介绍了关于Python按照某列内容对两个DataFrame进行合并操作的相关资料,文中通过代码示例介绍的非常详细,对大家学习或者使用Python具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-08-08
  • 30秒学会30个超实用Python代码片段【收藏版】

    30秒学会30个超实用Python代码片段【收藏版】

    许多人在数据科学、机器学习、web开发、脚本编写和自动化等领域中都会使用Python,它是一种十分流行的语言。本文将简要介绍30个简短的、且能在30秒内掌握的代码片段,感兴趣的朋友一起看看吧
    2019-10-10
  • 使用python验证代理ip是否可用的实现方法

    使用python验证代理ip是否可用的实现方法

    验证代理IP是否可用。原理是使用代理IP访问指定网站,如果返回状态为200,表示这个代理是可以使用的。这篇文章重点给大家介绍使用python验证代理ip是否可用的实现方法,感兴趣的朋友一起看看吧
    2018-07-07
  • 利用Python实现添加或读取Excel公式

    利用Python实现添加或读取Excel公式

    Excel公式是数据处理的核心工具,从简单的加减运算到复杂的逻辑判断,掌握基础语法是高效工作的起点,下面我们就来看看如何使用Python进行Excel公式的添加与读取吧
    2025-03-03
  • 对pandas进行数据预处理的实例讲解

    对pandas进行数据预处理的实例讲解

    下面小编就为大家分享一篇对pandas进行数据预处理的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • python 示例分享---逻辑推理编程解决八皇后

    python 示例分享---逻辑推理编程解决八皇后

    八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例。该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8X8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。
    2014-07-07
  • Django1.11自带分页器paginator的使用方法

    Django1.11自带分页器paginator的使用方法

    这篇文章主要为大家详细介绍了Django1.11自带分页器Django的使用方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-10-10

最新评论