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中的defaultdict模块和namedtuple模块的简单入门指南
Apr 01 Python
python类和继承用法实例
Jul 07 Python
Python编程中对文件和存储器的读写示例
Jan 25 Python
Python中的os.path路径模块中的操作方法总结
Jul 07 Python
Python使用django搭建web开发环境
Jun 09 Python
python构建深度神经网络(续)
Mar 10 Python
浅谈Python基础—判断和循环
Mar 22 Python
Python 3.8新特征之asyncio REPL
May 28 Python
python 视频逐帧保存为图片的完整实例
Dec 10 Python
python__new__内置静态方法使用解析
Jan 07 Python
解决Keras TensorFlow 混编中 trainable=False设置无效问题
Jun 28 Python
Python 添加文件注释和函数注释操作
Aug 09 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
雄兵连三大错觉:凯莎没了,凉冰阵亡了,华烨觉得自己又行了
2020/04/09 国漫
Ext.data.PagingMemoryProxy分页一次性读取数据的实现代码
2010/04/07 PHP
php模拟登陆的实现方法分析
2015/01/09 PHP
Centos下升级php5.2到php5.4全记录(编译安装)
2015/04/03 PHP
js控制表单不能输入空格的小例子
2013/11/20 Javascript
ie7+背景透明文字不透明超级简单的实现方法
2014/01/17 Javascript
JavaScript利用构造函数和原型的方式模拟C#类的功能
2014/03/06 Javascript
jQuery中的pushStack实现原理和应用实例
2015/02/03 Javascript
讲解JavaScript的Backbone.js框架的MVC结构设计理念
2016/02/14 Javascript
JavaScript获取IP获取的是IPV6 如何校验
2016/06/12 Javascript
jQuery Easyui DataGrid点击某个单元格即进入编辑状态焦点移开后保存数据
2016/08/15 Javascript
jQuery事件绑定方法学习总结(推荐)
2016/11/21 Javascript
如何清除IE10+ input X 文本框的叉叉和密码输入框的眼睛图标
2016/12/21 Javascript
jQuery按需加载轮播图(web前端性能优化)
2017/02/17 Javascript
vue.js开发环境搭建教程
2017/05/04 Javascript
Vue 事件处理操作实例详解
2019/03/05 Javascript
vue浏览器返回监听的具体步骤
2021/02/03 Vue.js
python局部赋值的规则
2013/03/07 Python
python海龟绘图实例教程
2014/07/24 Python
利用Python实现网络测试的脚本分享
2017/05/26 Python
Python升级导致yum、pip报错的解决方法
2017/09/06 Python
python实现决策树ID3算法的示例代码
2018/05/30 Python
详解python3中的真值测试
2018/08/13 Python
对Python 内建函数和保留字详解
2018/10/15 Python
python解压TAR文件至指定文件夹的实例
2019/06/10 Python
使用python打印十行杨辉三角过程详解
2019/07/10 Python
基于django 的orm中非主键自增的实现方式
2020/05/18 Python
golang/python实现归并排序实例代码
2020/08/30 Python
HTML5 audio标签使用js进行播放控制实例
2015/04/24 HTML / CSS
人力资源管理专业应届生求职信
2013/09/28 职场文书
商务助理岗位职责
2013/11/13 职场文书
门面房租房协议书
2014/12/01 职场文书
幼儿园欢迎词范文
2015/01/26 职场文书
失恋33天观后感
2015/06/11 职场文书
Android Studio实现简易进制转换计算器
2022/05/20 Java/Android
uniapp开发打包多端应用完整方法指南
2022/12/24 Javascript