Python的PrettyTable模块

Python的PrettyTable模块

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_cursorconnection = 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,Themex = 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)

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/269336.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

更换个人开发环境后,pycharm连接服务器报错Authentication failed

原因:服务器中更换个人开发环境后,密码变了。 解决:在pycharm中修改服务器开发环境密码即可。 1 找到Tools-Depolyment-Configuration 2 点击SSH Configuration后的省略号 3 修改这里面的Password即可

autodock分子对接操作步骤完整版

对接完整步骤具体操作 设置工作目录 保证工作目录下必须要有这五个文件: 对蛋白质的操作 打开蛋白质 去水,结构周围的小红点。 加氢 将蛋白质设为受体 点击确定进行保存 进行下一步小分子 小分子具体操作 打开小分子 对小分子进行加氢 将小分子设定为配…

第三篇【传奇开心果系列】Python的自动化办公库技术点案例示例:深度解读Pandas股票市场数据分析

传奇开心果博文系列 系列博文目录Python的自动化办公库技术点案例示例系列 博文目录前言一、Pandas进行股票市场数据分析常见步骤和示例代码1. 加载数据2. 数据清洗和准备3. 分析股票价格和交易量4. 财务数据分析 二、扩展思路介绍1. 技术指标分析2. 波动性分析3. 相关性分析4.…

HTML5:七天学会基础动画网页7

CSS3高级特效 2D转换方法 移动:translate() 旋转:rotate() 缩放:scale() 倾斜:skew() 属性:transform 作用:对元素进行移动,旋转,缩放,倾斜。 2D移动 设定元素从当前位置移动到给定位置(x,y) 方法 说明 translate(x,y) 2D转换 沿X轴和Y轴移…

【李沐论文精读】Transformer精读

论文:Attention is All You Need 参考:李沐视频【Transformer论文逐段精读】、Transformer论文逐段精读【论文精读】、李沐视频精读系列 一、摘要 主流的序列转换(sequence transduction)模型都是基于复杂的循环或卷积神经网络,这个模型包含一…

云计算,用价格让利换创新空间?

文 | 智能相对论 作者 | 李源 ECS(云服务器)最高降36%、OSS(对象存储)最高降55%、RDS(云数据库)最高降40%…… 阿里云惊人的降幅,一次性把国内云计算厂商的价格战推到了白热化阶段。 这次能…

LVS负载均衡集群的基本介绍

目录 一、LVS集群基本介绍 1、什么是集群 2、集群的类型 2.1 负载均衡群集(Load Balance Cluster) 2.2 高可用群集(High Availiablity Cluster) 2.3 高性能运算群集(High Performance Computing Cluster) 3、负载均衡集群的结构 4、LVS集群类型中的术语 5、…

【javaEE-唠嗑局】如何用jconsole观察进程里的多线程情况

📢编程环境:idea 如何用jconsole观察进程里的多线程情况 1. 打开jdk2. 打开jconsole3. 查看每个线程的情况 以下面这段代码为例:代码运行时,包括一个进程,该进程中有两个线程。 package thread; public class Demo1 …

【algorithm】算法基础课---排序算法(附笔记 | 建议收藏)

🚀write in front🚀 📝个人主页:认真写博客的夏目浅石. 🎁欢迎各位→点赞👍 收藏⭐️ 留言📝 📣系列专栏:AcWing算法学习笔记 💬总结:希望你看完…

(3)(3.2) MAVLink2数据包签名(安全)

文章目录 前言 1 配置 2 使用 3 MAVLink协议说明 前言 ArduPilot 和任务计划器能够通过使用加密密钥添加数据包签名,为空中 MAVLink 传输增加安全性。这并不加密数据,只是控制自动驾驶仪是否响应 MAVLink 命令。 当自动驾驶仪处于激活状态时&#x…

【C语言】Leetcode 206.反转链表

博主主页:17_Kevin-CSDN博客 收录专栏:《Leetcode》 题目 解决思路 思路一:翻转链表 struct ListNode* reverseList(struct ListNode* head) {if(head NULL){return NULL;}struct ListNode* n1 NULL,*n2 head,*n3 n2 -> next;while(…

Dell R730 2U服务器实践2:VMWare ESXi安装

缘起 刚到手边的一台Dell R730是三块硬盘raid0 ,把我惊出一身冷汗,准备把它们改组成raid1 或者raid5 。 但是舍不得里面的ESXi 8 ,寻找能否把raid0改成raid1 还不掉WSXi的方法,很遗憾没有找到。那样只能重装ESXi了。 ESXi软件下…

MyCAT学习——在openEuler22.03中安装MyCAT2(网盘下载版)

准备工作 因为MyCAT 2基于JDK 1.8开发。也需要在虚拟机中安装JDK(JDK官网就能下载,我这提供一个捷径) jdk-8u401-linux-x64.rpmhttps://pan.baidu.com/s/1ywcDsxYOmfZONpmH9oDjfw?pwdrhel下载对应的tar安装包,以及对应的jar包 安装程序包…

Tomcat概念、安装及相关文件介绍

目录 一、web技术 1、C/S架构与B/S架构 1.1 http协议与C/S架构 1.2 http协议与B/S架构 2、前端三大核心技术 2.1 HTML(Hypertext Markup Language) 2.2 css(Cascading Style Sheets) 2.3 JavaScript 3、同步和异步 4、…

如何使用 ArcGIS Pro 统计四川省各市道路长度

在某些时候,我们需要进行分区统计,如果挨个裁剪数据再统计,不仅步骤繁琐、耗时,还会产生一些多余的数据,这里教大家如何在不裁剪数据的情况下统计四川各市的道路长度,希望能对你有所帮助。 数据来源 教程…

苹果发布新款 MacBook Air 13/15升级M3售8999元起

苹果官网发布新款 MacBook Air,13 英寸和 15 英寸同时升级。 搭载 M3 芯片,性能更强,续航最长可达 18 小时,最多可连接两台外接显示器。 这是一次常规的芯片升级,外观相比上代没有变化。拥有午夜色、星光色、深空灰和银…

在vue前端开发中基于refreshToken和axios拦截器实现token的无感刷新

文章目录 一、需求背景二、token刷新的方案1、根据过期时间重新获取2、定时刷新token接口3、使用了RefreshToken 三、关于RefreshToken四、Refresh Token的优点五、Refresh Token的工作原理六、Refresh Token的使用流程七、Refresh Token的实现步骤1、登录成功后保存AccessToke…

机器人顶刊IJRR近期国人新作(2024)

一、IJRR简介 The International Journal of Robotics Research(IJRR)是机器人领域的高水平学术期刊,专注于发布关于机器人技术和相关领域的最新研究成果。IJRR创刊于1982年,是该领域的第一本学术刊物,2022-2023最新影…

销量王者!三一新能源搅拌车助力商砼运输走向低碳未来

2023年,在国家扩大内需和“双碳战略”的双重推进下,新老基建项目开工速度纷纷加快,各个行业对应用于工程基建、房地产等中短途混凝土运输的新能源搅拌车有了更大的需求量。 终端上牌数据显示,2023年1-12月新能源重卡累计销售23560辆,同比增长35.65%。其中,搅拌车销量暴涨,实销…

Kafka面经

1.Kafka如何保证消息不丢失 生产者: 1.Producer 默认是异步发送消息,这种情况下要确保消息发送成功,有两个方法 a. 把异步发送改成同步发送,这样 producer 就能实时知道消息发送的结果。 b. 添加异步回调函数来监听消息发送的结…