iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python利用prettytable实现格式化输出内容
  • 374
分享到

Python利用prettytable实现格式化输出内容

2024-04-02 19:04:59 374人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

目录楔子添加表头、添加行、添加列输出指定行、指定列设置表格样式设置对齐方式设置边框样式楔子 我们用 Mysql 客户端查询数据的时候,是以下面这种格式显示的: 内容展示的非常漂亮,

楔子

我们用 Mysql 客户端查询数据的时候,是以下面这种格式显示的:

内容展示的非常漂亮,而 python 有一个第三方模块叫 prettytable,专门用来将数据以上面这种格式输出,我们来看一下用法。

添加表头、添加行、添加列

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

from prettytable import PrettyTable

# 传入的 name、age、country 相当于表头
tb = PrettyTable(["name", "age", "country"])
# 调用 add_row 添加行记录
tb.add_row(["Jack Morrison", 49, "America"])
tb.add_row(["Shimada Genji", 35, "Japan"])
tb.add_row(["Shimada Hanzo", 38, "Japan"])
tb.add_row(["Angela Ziegler", 37, "Switzerland"])

print(tb)
"""
+----------------+-----+-------------+
|      name      | age |   country   |
+----------------+-----+-------------+
| Jack Morrison  |  49 |   America   |
| Shimada Genji  |  35 |    Japan    |
| Shimada Hanzo  |  38 |    Japan    |
| Angela Ziegler |  37 | Switzerland |
+----------------+-----+-------------+
"""

如果在编写的过程中,我们需要临时添加一列,prettytable 也是支持的。

from prettytable import PrettyTable

tb = PrettyTable(["name", "age", "country"])
tb.add_row(["Jack Morrison", 49, "America"])
tb.add_row(["Shimada Genji", 35, "Japan"])
tb.add_row(["Shimada Hanzo", 38, "Japan"])
tb.add_row(["Angela Ziegler", 37, "Switzerland"])

# 调用 add_column 添加一列
tb.add_column("gender",
              ["male", "male", "male", "female"])
print(tb)
"""
+----------------+-----+-------------+--------+
|      name      | age |   country   | gender |
+----------------+-----+-------------+--------+
| Jack Morrison  |  49 |   America   |  male  |
| Shimada Genji  |  35 |    Japan    |  male  |
| Shimada Hanzo  |  38 |    Japan    |  male  |
| Angela Ziegler |  37 | Switzerland | female |
+----------------+-----+-------------+--------+
"""

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

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

输出指定行、指定列

我们也可以输出 table 的指定行、指定列。

from prettytable import PrettyTable

tb = PrettyTable(["name", "age", "country", "gender"])
tb.add_row(["Jack Morrison", 49, "America", "male"])
tb.add_row(["Shimada Genji", 35, "Japan", "male"])
tb.add_row(["Shimada Hanzo", 38, "Japan", "male"])
tb.add_row(["Angela Ziegler", 37, "Switzerland", "female"])
# 只输出 name 和 age 两列
# start 和 end 表示开始和结束的行数(从 0 开始)
print(tb.get_string(fields=["name", "age"],
                    start=1, end=3))
"""
+---------------+-----+
|      name     | age |
+---------------+-----+
| Shimada Genji |  35 |
| Shimada Hanzo |  38 |
+---------------+-----+
"""

# 此外可以用来进行排序
print(tb.get_string(sortby="age", reversesort=True))
"""
+----------------+-----+-------------+--------+
|      name      | age |   country   | gender |
+----------------+-----+-------------+--------+
| Jack Morrison  |  49 |   America   |  male  |
| Shimada Hanzo  |  38 |    Japan    |  male  |
| Angela Ziegler |  37 | Switzerland | female |
| Shimada Genji  |  35 |    Japan    |  male  |
+----------------+-----+-------------+--------+
"""

设置表格样式

表格也支持几种不同的样式,供我们选择。

from prettytable import *

tb = PrettyTable(["name", "age", "country", "gender"])
tb.add_row(["Jack Morrison", 49, "America", "male"])
tb.add_row(["Shimada Genji", 35, "Japan", "male"])
tb.add_row(["Shimada Hanzo", 38, "Japan", "male"])
tb.add_row(["Angela Ziegler", 37, "Switzerland", "female"])

# 样式支持以下几种:
# DEFAULT、MSWord_FRIENDLY、PLaiN_COLUMNS、RANDOM
# 之前的样式就是 DEFAULT
tb.set_style(MSWORD_FRIENDLY)
print(tb)
"""
|      name      | age |   country   | gender |
| Jack Morrison  |  49 |   America   |  male  |
| Shimada Genji  |  35 |    Japan    |  male  |
| Shimada Hanzo  |  38 |    Japan    |  male  |
| Angela Ziegler |  37 | Switzerland | female |
"""

tb.set_style(PLAIN_COLUMNS)
print(tb)
"""
     name             age          country          gender        
Jack Morrison          49          America           male         
Shimada Genji          35           Japan            male         
Shimada Hanzo          38           Japan            male         
Angela Ziegler         37        Switzerland        female     
"""

tb.set_style(RANDOM)
print(tb)
"""
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;
.        name              age           country           gender     .
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;
.   Jack Morrison           49           America            male      .
.   Shimada Genji           35            Japan             male      .
.   Shimada Hanzo           38            Japan             male      .
.   Angela Ziegler          37         Switzerland         female     .
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;
"""

说实话,还是默认的 DEFAULT 样式最好看。

设置对齐方式

from prettytable import *

tb = PrettyTable(["name", "age", "country", "gender"])
tb.add_row(["Jack Morrison", 49, "America", "male"])
tb.add_row(["Shimada Genji", 35, "Japan", "male"])
tb.add_row(["Shimada Hanzo", 38, "Japan", "male"])
tb.add_row(["Angela Ziegler", 37, "Switzerland", "female"])

# l 代表左对齐,c 代表居中,r 代表右对齐
# 默认居中
tb.align["name"] = "l"
tb.align["age"] = "c"
tb.align["country"] = "r"
print(tb)
"""
+----------------+-----+-------------+--------+
| name           | age |     country | gender |
+----------------+-----+-------------+--------+
| Jack Morrison  |  49 |     America |  male  |
| Shimada Genji  |  35 |       Japan |  male  |
| Shimada Hanzo  |  38 |       Japan |  male  |
| Angela Ziegler |  37 | Switzerland | female |
+----------------+-----+-------------+--------+
"""

设置边框样式

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

from prettytable import *

tb = PrettyTable(["name", "age", "country", "gender"])
tb.add_row(["Jack Morrison", 49, "America", "male"])
tb.add_row(["Shimada Genji", 35, "Japan", "male"])
tb.add_row(["Shimada Hanzo", 38, "Japan", "male"])
tb.add_row(["Angela Ziegler", 37, "Switzerland", "female"])

# 是否显示边框,默认为True
tb.border = True
# 横边框
tb.horizontal_char = '^'
# 竖边框
tb.vertical_char = '>'
# 边框连接符
tb.junction_char='~'

print(tb)
"""
~^^^^^^^^^^^^^^^^~^^^^^~^^^^^^^^^^^^^~^^^^^^^^~
>      name      > age >   country   > gender >
~^^^^^^^^^^^^^^^^~^^^^^~^^^^^^^^^^^^^~^^^^^^^^~
> Jack Morrison  >  49 >   America   >  male  >
> Shimada Genji  >  35 >    Japan    >  male  >
> Shimada Hanzo  >  38 >    Japan    >  male  >
> Angela Ziegler >  37 > Switzerland > female >
~^^^^^^^^^^^^^^^^~^^^^^~^^^^^^^^^^^^^~^^^^^^^^~
"""

到此这篇关于Python利用prettytable实现格式化输出内容的文章就介绍到这了,更多相关Python prettytable格式化输出内容内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Python利用prettytable实现格式化输出内容

本文链接: https://www.lsjlt.com/news/119516.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python利用prettytable实现格式化输出内容
    目录楔子添加表头、添加行、添加列输出指定行、指定列设置表格样式设置对齐方式设置边框样式楔子 我们用 MySQL 客户端查询数据的时候,是以下面这种格式显示的: 内容展示的非常漂亮,...
    99+
    2024-04-02
  • python使用prettytable内置库美化输出表格
    目录前言:安装案例从csv文件添加数据,并打印出表格从HTML导入数据前言: 大多数时候,需要输出的信息能够比较整齐的输出来,在使用mysql的时候,我们使用命令符之后,会输出特别好...
    99+
    2024-04-02
  • Python利用prettytable库输出好看的表格
    目录1.前言2.安装3.示例4.添加数据5.表格输出格式6.选择性输出7.表格的样式1.前言 最近在用 Python 写一个小工具,这个工具主要就是用来管理各种资源的信息,比如阿里云...
    99+
    2024-04-02
  • python怎么使用prettytable内置库美化输出表格
    这篇文章主要介绍“python怎么使用prettytable内置库美化输出表格”,在日常操作中,相信很多人在python怎么使用prettytable内置库美化输出表格问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家...
    99+
    2023-07-02
  • python 利用 PrettyTable 美化表格
    目录一、安装二、按行设置数据三、按列添加四、输出风格五、获取字符串六、表格样式设置七、输出成HTML八、复制一、安装 pip install PrettyTable 二、按行设置数据...
    99+
    2024-04-02
  • python中实现格式化输出 %用法
    当我们在python中需要打印出特定格式的内容时可以用到这个方法,方法介绍如下: 例如我们现在要收集用户的一些个人信息,这时候我们的代码如下:   name=input("name: ")age=int(input("age: "))jo...
    99+
    2023-01-30
    python
  • python怎么利用PrettyTable美化表格
    这篇文章主要介绍“python怎么利用PrettyTable美化表格”,在日常操作中,相信很多人在python怎么利用PrettyTable美化表格问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”python怎...
    99+
    2023-06-29
  • Python格式化输出的具体实现
    目录“%”的使用字符串输出(%s)浮点数输出(%f)format的使用位置匹配格式转换高阶用法format变形用法“%”的使用 格式符...
    99+
    2024-04-02
  • Python中如何实现format()格式化输出
    这篇文章主要为大家展示了“Python中如何实现format()格式化输出”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Python中如何实现format()格式化输出”这篇文章吧。format...
    99+
    2023-06-25
  • Python实现格式化输出的实例详解
    目录一、format格式输出字符串二、format格式输出字符串实例实例1、网站名称实例2、数值格式化为不同的形式实例3、{}中不设参数实例4、 {}中设参数实例5、str.form...
    99+
    2024-04-02
  • Python【3】:格式化 输出 whi
    (占位符) % (求余数) 示例 name = input("请输入你的名字") age =int(input("请输入你的年龄")) ...
    99+
    2023-01-31
    Python whi
  • Python格式化输出详情
    目录1.%格式化1.1简单格式化,不使用可选参数1.2 复杂格式化,使用可选参数1.2.1参数 (name),用于选择指定的key1.2.2参数flags和width,对齐方式和宽度...
    99+
    2024-04-02
  • Python学习 :格式化输出
    方式一:使用占位符 %   常用占位符:% s   (s = string 字符串)          % d   (d = digit 整数(十进制))        %  f   ( f = float  浮点数)   name =...
    99+
    2023-01-30
    Python
  • 怎么在python中利用print函数格式化输出
    今天就跟大家聊聊有关怎么在python中利用print函数格式化输出,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。python主要应用领域有哪些1、云计算,典型应用OpenStack...
    99+
    2023-06-14
  • Python格式化输出总结
    格式化输出一,使用%占位符name = input("请输入您的姓名") age = int(input("请输入您的年龄")) job = input("请输入您的工作") hobby = input("请输入您的爱好") msg = '...
    99+
    2023-01-31
    Python
  • python 3 用户输入和格式化输出
    # -*- coding:utf-8 -*- #用户输入 && 格式化输出 #getpass 模块是内置的,可以将输入的内容隐藏 import getpass username = input("username:") pa...
    99+
    2023-01-31
    用户 python
  • python中如何格式化输出
    这篇文章将为大家详细讲解有关python中如何格式化输出,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。前言:有几种方法可以显示程序的输出。 数据可以以人类可读的形式打印,或写入文件以供将来使用,甚至可以以...
    99+
    2023-06-29
  • python字符串格式化输出
    python中有两种格式化输出字符串的方式:格式化表达式、format()方法。当然,还有一个简化操作的内置format()函数。 它们绝大部分功能都是重复的,熟悉printf的可以考虑使用格式化表达式,否则使用format()更友好些,...
    99+
    2023-01-30
    字符串 python
  • 浅谈Python的格式化输出
    python的输出 python输出中的print()函数,直接引用即可,它的完整格式为: #最后面还有文件操作的,我们主要学习输出相关,所以暂不加入 print(object,...
    99+
    2024-04-02
  • Python进行JSON格式化输出
    先写一个字典并将其转换成JSON格式: # encoding:utf-8 import json dic = {'a': 1, 'b': 2, 'c': 3} js = json.dumps(dic) print(js) 打...
    99+
    2023-01-31
    Python JSON
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作