Python实用库 PrettyTable 学习笔记


Posted in Python onAugust 06, 2019

本文实例讲述了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 相关文章推荐
python根据开头和结尾字符串获取中间字符串的方法
Mar 26 Python
Python中Continue语句的用法的举例详解
May 14 Python
用Python计算三角函数之atan()方法的使用
May 15 Python
Linux下将Python的Django项目部署到Apache服务器
Dec 24 Python
对Python 数组的切片操作详解
Jul 02 Python
python环境路径配置以及命令行运行脚本
Apr 02 Python
python,Django实现的淘宝客登录功能示例
Jun 12 Python
Python利用WMI实现ping命令的例子
Aug 14 Python
Tensorflow Summary用法学习笔记
Jan 10 Python
python pandas.DataFrame.loc函数使用详解
Mar 26 Python
Python内置异常类型全面汇总
May 28 Python
python中validators库的使用方法详解
Sep 23 Python
浅谈django2.0 ForeignKey参数的变化
Aug 06 #Python
Python中调用其他程序的方式详解
Aug 06 #Python
运用PyTorch动手搭建一个共享单车预测器
Aug 06 #Python
基于python实现自动化办公学习笔记(CSV、word、Excel、PPT)
Aug 06 #Python
django将数组传递给前台模板的方法
Aug 06 #Python
Python实现时间序列可视化的方法
Aug 06 #Python
python 模拟银行转账功能过程详解
Aug 06 #Python
You might like
PHP中引用类型和值类型功能与用法示例
2019/02/26 PHP
js 跨域和ajax 跨域问题小结
2009/07/01 Javascript
基于jQuery的消息提示插件 DivAlert之旅(二)
2010/04/01 Javascript
JQuery开发的数独游戏代码
2010/10/29 Javascript
jquery弹出层类代码分享
2013/12/27 Javascript
jQuery - css() 方法示例详解
2014/01/16 Javascript
判断一个对象是否为jquery对象的方法
2014/03/12 Javascript
javascript判断是手机还是电脑访问网页的简单实例分享
2014/06/03 Javascript
jquery使整个div区域可以点击的方法
2015/06/24 Javascript
javascript生成大小写字母
2015/07/03 Javascript
理解javascript中的原型和原型链
2015/07/30 Javascript
如何利用AngularJS打造一款简单Web应用
2015/12/05 Javascript
JavaScript、tab切换完整版(自动切换、鼠标移入停止、移开运行)
2016/01/05 Javascript
Vue+Flask实现简单的登录验证跳转的示例代码
2018/01/13 Javascript
JS如何调用WebAssembly编译出来的.wasm文件
2020/11/05 Javascript
以Flask为例讲解Python的框架的使用方法
2015/04/29 Python
总结Python中逻辑运算符的使用
2015/05/13 Python
Python中有趣在__call__函数
2015/06/21 Python
python动态加载包的方法小结
2016/04/18 Python
python 给DataFrame增加index行名和columns列名的实现方法
2018/06/08 Python
Python多线程同步---文件读写控制方法
2019/02/12 Python
python sort、sort_index方法代码实例
2019/03/28 Python
详解使用python绘制混淆矩阵(confusion_matrix)
2019/07/14 Python
python实现一个函数版的名片管理系统过程解析
2019/08/27 Python
PyTorch实现更新部分网络,其他不更新
2019/12/31 Python
Python异常继承关系和自定义异常实现代码实例
2020/02/20 Python
python中的unittest框架实例详解
2021/02/05 Python
详解Css3新特性应用之过渡与动画
2017/01/10 HTML / CSS
中国电子产品外贸网站:MiniIntheBox
2017/02/06 全球购物
在Ajax应用中信息是如何在浏览器和服务器之间传递的
2016/05/31 面试题
网站客服岗位职责
2014/04/05 职场文书
新闻报道策划方案
2014/06/11 职场文书
设计专业自荐信
2014/06/19 职场文书
承诺保证书格式
2015/02/28 职场文书
预备党员自我评价范文
2015/03/04 职场文书
2019年鼓励无偿献血倡议书
2019/09/17 职场文书