Python实用库 PrettyTable 学习笔记

 更新时间:2019年08月06日 11:59:19   作者:山那边的瘦子  
这篇文章主要介绍了Python实用库 PrettyTable 学习笔记,结合实例形式分析了Python表格操作库PrettyTable的安装、使用技巧与相关注意事项,需要的朋友可以参考下

本文实例讲述了Python实用库 PrettyTable。分享给大家供大家参考,具体如下:

PrettyTable安装

使用pip即可十分方便的安装PrettyTable,如下:

pip install PrettyTable

PrettyTable使用示例

github上有PrettyTable的使用说明,链接如下:https://github.com/dprince/python-prettytable

以下是具体的使用示例:

import prettytable as pt

按行添加数据

tb = pt.PrettyTable()
tb.field_names = ["City name", "Area", "Population", "Annual Rainfall"]
tb.add_row(["Adelaide",1295, 1158259, 600.5])
tb.add_row(["Brisbane",5905, 1857594, 1146.4])
tb.add_row(["Darwin", 112, 120900, 1714.7])
tb.add_row(["Hobart", 1357, 205556,619.5])
print(tb)

+-----------+------+------------+-----------------+
| City name | Area | Population | Annual Rainfall |
+-----------+------+------------+-----------------+
|  Adelaide | 1295 |  1158259   |      600.5      |
|  Brisbane | 5905 |  1857594   |      1146.4     |
|   Darwin  | 112  |   120900   |      1714.7     |
|   Hobart  | 1357 |   205556   |      619.5      |
+-----------+------+------------+-----------------+

按列添加数据

tb.add_column('index',[1,2,3,4])
print(tb)

+-----------+------+------------+-----------------+-------+
| City name | Area | Population | Annual Rainfall | index |
+-----------+------+------------+-----------------+-------+
|  Adelaide | 1295 |  1158259   |      600.5      |   1   |
|  Brisbane | 5905 |  1857594   |      1146.4     |   2   |
|   Darwin  | 112  |   120900   |      1714.7     |   3   |
|   Hobart  | 1357 |   205556   |      619.5      |   4   |
+-----------+------+------------+-----------------+-------+

使用不同的输出风格

tb.set_style(pt.MSWORD_FRIENDLY)
print('--- style:MSWORD_FRIENDLY -----')
print(tb)
tb.set_style(pt.PLAIN_COLUMNS)
print('--- style:PLAIN_COLUMNS -----')
print(tb)

随机风格,每次不同

tb.set_style(pt.RANDOM)
print('--- style:MSWORD_FRIENDLY -----')
print(tb)
tb.set_style(pt.DEFAULT)
print('--- style:DEFAULT -----')
print(tb)

--- style:MSWORD_FRIENDLY -----
| City name | Area | Population | Annual Rainfall |
|  Adelaide | 1295 |  1158259   |      600.5      |
|  Brisbane | 5905 |  1857594   |      1146.4     |
|   Darwin  | 112  |   120900   |      1714.7     |
|   Hobart  | 1357 |   205556   |      619.5      |
--- style:PLAIN_COLUMNS -----
City name        Area        Population        Annual Rainfall       
 Adelaide        1295         1158259               600.5            
 Brisbane        5905         1857594               1146.4           
  Darwin         112           120900               1714.7           
  Hobart         1357          205556               619.5            
--- style:MSWORD_FRIENDLY -----
@    Adelaide     1295     1158259     600.5 @
@    Brisbane     5905     1857594     1146.4@
@     Darwin      112       120900     1714.7@
@     Hobart      1357      205556     619.5 @
--- style:DEFAULT -----
+-----------+------+------------+-----------------+
| City name | Area | Population | Annual Rainfall |
+-----------+------+------------+-----------------+
|  Adelaide | 1295 |  1158259   |      600.5      |
|  Brisbane | 5905 |  1857594   |      1146.4     |
|   Darwin  | 112  |   120900   |      1714.7     |
|   Hobart  | 1357 |   205556   |      619.5      |
+-----------+------+------------+-----------------+

不打印,获取表格字符串

s = tb.get_string()
print(s)

可以只获取指定列或行

s = tb.get_string(fields=["City name", "Population"],start=1,end=4)
print(s)

+-----------+------+------------+-----------------+
| City name | Area | Population | Annual Rainfall |
+-----------+------+------------+-----------------+
|  Adelaide | 1295 |  1158259   |      600.5      |
|  Brisbane | 5905 |  1857594   |      1146.4     |
|   Darwin  | 112  |   120900   |      1714.7     |
|   Hobart  | 1357 |   205556   |      619.5      |
+-----------+------+------------+-----------------+
+-----------+------------+
| City name | Population |
+-----------+------------+
|  Brisbane |  1857594   |
|   Darwin  |   120900   |
|   Hobart  |   205556   |
+-----------+------------+

自定义表格输出样式

设定左对齐

tb.align = 'l'

设定数字输出格式

tb.float_format = "2.2"

设定边框连接符为'*”

tb.junction_char = "*"

设定排序方式

tb.sortby = "City name"

设定左侧不填充空白字符

tb.left_padding_width = 0
print(tb)

*----------*-----*-----------*----------------*
|City name |Area |Population |Annual Rainfall |
*----------*-----*-----------*----------------*
|Adelaide  |1295 |1158259    |600.50          |
|Brisbane  |5905 |1857594    |1146.40         |
|Darwin    |112  |120900     |1714.70         |
|Hobart    |1357 |205556     |619.50          |
*----------*-----*-----------*----------------*

不显示边框

tb.border = 0
print(tb)

修改边框分隔符

tb.set_style(pt.DEFAULT)
tb.horizontal_char = '+'
print(tb)

City name Area Population Annual Rainfall
Adelaide  1295 1158259    600.50         
Brisbane  5905 1857594    1146.40        
Darwin    112  120900     1714.70        
Hobart    1357 205556     619.50         
+++++++++++++++++++++++++++++++++++++++++++++++++++
| City name | Area | Population | Annual Rainfall |
+++++++++++++++++++++++++++++++++++++++++++++++++++
| Adelaide  | 1295 | 1158259    | 600.50          |
| Brisbane  | 5905 | 1857594    | 1146.40         |
| Darwin    | 112  | 120900     | 1714.70         |
| Hobart    | 1357 | 205556     | 619.50          |
+++++++++++++++++++++++++++++++++++++++++++++++++++

prettytable也支持输出HTML代码

s = tb.get_html_string()
print(s)

City name Area Population Annual Rainfall
Adelaide 1295 1158259 600.50
Brisbane 5905 1857594 1146.40
Darwin 112 120900 1714.70
Hobart 1357 205556 619.50

使用copy方法复制对象

tb.set_style(pt.DEFAULT)
tb.horizontal_char = '.'
tb2 = tb.copy()
tb.align = 'l'
tb2.align = 'r'
print(tb)
print(tb2)

直接赋值,得到的是索引

tb.horizontal_char = '-'
tb.aliign = 'l'
tb3 = tb
tb3.align = 'r'
print(tb)
print(tb3)

+...........+......+............+.................+
| City name | Area | Population | Annual Rainfall |
+...........+......+............+.................+
| Adelaide  | 1295 | 1158259    | 600.50          |
| Brisbane  | 5905 | 1857594    | 1146.40         |
| Darwin    | 112  | 120900     | 1714.70         |
| Hobart    | 1357 | 205556     | 619.50          |
+...........+......+............+.................+
+...........+......+............+.................+
| City name | Area | Population | Annual Rainfall |
+...........+......+............+.................+
|  Adelaide | 1295 |    1158259 |          600.50 |
|  Brisbane | 5905 |    1857594 |         1146.40 |
|    Darwin |  112 |     120900 |         1714.70 |
|    Hobart | 1357 |     205556 |          619.50 |
+...........+......+............+.................+
+-----------+------+------------+-----------------+
| City name | Area | Population | Annual Rainfall |
+-----------+------+------------+-----------------+
|  Adelaide | 1295 |    1158259 |          600.50 |
|  Brisbane | 5905 |    1857594 |         1146.40 |
|    Darwin |  112 |     120900 |         1714.70 |
|    Hobart | 1357 |     205556 |          619.50 |
+-----------+------+------------+-----------------+
+-----------+------+------------+-----------------+
| City name | Area | Population | Annual Rainfall |
+-----------+------+------------+-----------------+
|  Adelaide | 1295 |    1158259 |          600.50 |
|  Brisbane | 5905 |    1857594 |         1146.40 |
|    Darwin |  112 |     120900 |         1714.70 |
|    Hobart | 1357 |     205556 |          619.50 |
+-----------+------+------------+-----------------+
---------------------

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python操作Excel表格技巧总结》、《Python文件与目录操作技巧汇总》、《Python文本文件操作技巧汇总》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程

希望本文所述对大家Python程序设计有所帮助。

相关文章

  • 详解Python flask的前后端交互

    详解Python flask的前后端交互

    这篇文章主要为大家详细介绍了Python flask的前后端交互,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-03-03
  • Python绘图实现坐标轴共享与复用详解

    Python绘图实现坐标轴共享与复用详解

    这篇文章主要为大家详细介绍了Python在绘图时如何实现坐标轴共享与复用,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-02-02
  • Eclipse + Python 的安装与配置流程

    Eclipse + Python 的安装与配置流程

    Eclipse的安装是很容易的。Eclipse是基于java的一个应用程序,因此需要一个java的运行环境(JRE)才行。(我这里主要介绍windows下的安装)
    2013-03-03
  • pandas中的DataFrame数据遍历解读

    pandas中的DataFrame数据遍历解读

    这篇文章主要介绍了pandas中的DataFrame数据遍历解读,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • python基础之集合

    python基础之集合

    这篇文章主要介绍了python集合,实例分析了Python中返回一个返回值与多个返回值的方法,需要的朋友可以参考下
    2021-10-10
  • 修改Python pip下载包的默认路径详细步骤记录

    修改Python pip下载包的默认路径详细步骤记录

    这篇文章主要介绍了如何修改pip的默认安装路径以释放C盘空间,特别是针对机器学习相关的大型包,可以将pip的安装位置更改为其他目录,需要的朋友可以参考下
    2025-03-03
  • 在pycharm中python切换解释器失败的解决方法

    在pycharm中python切换解释器失败的解决方法

    今天小编就为大家分享一篇在pycharm中python切换解释器失败的解决方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-10-10
  • 基于python的多进程共享变量正确打开方式

    基于python的多进程共享变量正确打开方式

    下面小编就为大家分享一篇基于python的多进程共享变量正确打开方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • Python实现斐波那契数列的示例代码

    Python实现斐波那契数列的示例代码

    斐波那契数列是一种经典的数学问题,在计算机科学和编程中经常被用来演示算法和递归的概念,本文将详细介绍斐波那契数列的定义、计算方法以及如何在Python中实现它,需要的可以参考下
    2024-01-01
  • python集合能干吗

    python集合能干吗

    在本篇内容中小编给各位分享了关于python集合的作用以及相关实例内容,需要的朋友们可以学习参考下。
    2020-07-07

最新评论