我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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

楔子

我们用 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格式化输出内容内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

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

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

下载Word文档

猜你喜欢

python怎么使用prettytable内置库美化输出表格

这篇文章主要介绍“python怎么使用prettytable内置库美化输出表格”,在日常操作中,相信很多人在python怎么使用prettytable内置库美化输出表格问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家
2023-07-02

python中实现格式化输出 %用法

当我们在python中需要打印出特定格式的内容时可以用到这个方法,方法介绍如下:例如我们现在要收集用户的一些个人信息,这时候我们的代码如下: name=input("name: ")age=int(input("age: "))job=in
2023-01-30

Python中如何实现format()格式化输出

这篇文章主要为大家展示了“Python中如何实现format()格式化输出”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Python中如何实现format()格式化输出”这篇文章吧。format
2023-06-25

怎么在python中利用print函数格式化输出

今天就跟大家聊聊有关怎么在python中利用print函数格式化输出,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。python主要应用领域有哪些1、云计算,典型应用OpenStack
2023-06-14

python实现将内容分行输出

#python版一行内容分行输出a="aA1一bB2二cC3三dD4四eE5五fF6六gG7七hH8八iI9九" """ 分行输出为: abcdefghi ABCDEFGHI 123456789 一二三四五六七八九 """print("方法
2022-06-04

python 3 用户输入和格式化输出

# -*- coding:utf-8 -*-#用户输入 && 格式化输出#getpass 模块是内置的,可以将输入的内容隐藏import getpassusername = input("username:")password = inpu
2023-01-31

drupal内的表格化输出实现方法

本文实例讲述了drupal内的表格化输出实现方法。是基于drupal6实现的。分享给大家供大家参考。具体实现方法如下: 1、theme_table()在drupal内,theme函数就是用来控制输出的。在定制模块的时候,你upNXcN要想将
2022-06-12

怎么在python中利用for循环实现内输出和外输出

这期内容当中小编将会给大家带来有关怎么在python中利用for循环实现内输出和外输出,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Python主要用来做什么Python主要应用于:1、Web开发;2、数
2023-06-14

python中的格式化输出用法总结

本文实例总结了python中的格式化输出用法。分享给大家供大家参考,具体如下: Python一共有两种格式化输出语法。 一种是类似于C语言printf的方式,称为 Formatting Expression>>> '%s %d-%d' %
2022-06-04

怎么使用python的f-string格式化输出

本篇内容介绍了“怎么使用python的f-string格式化输出”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1、f-string简介pyt
2023-06-01

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录