python模块——PrettyTable
python模块——PrettyTable
一. 简介
Python通过prettytable模块将输出内容如表格方式整齐输出,可用来生成美观的ASCII格式的表格,十分实用。
python本身并不内置,需要独立安装该第三方库。
二、使用
简单使用
import prettytable as pt ## 按行添加数据
tb = pt.PrettyTable()
tb.field_names = ["名字","投票人数","类型","产地","上映时间","时长","年代","评分"]
tb.add_row(["美丽人生",42995,"剧情/喜剧/爱情","意大利","1997-12-20",116,1997,9.5])
tb.add_row(["肖申克的救赎",692795,"剧情/犯罪","美国","1994-09-10",142,1994,9.6])
print(tb)
+--------------+----------+----------------+--------+------------+------+------+------+
| 名字 | 投票人数 | 类型 | 产地 | 上映时间 | 时长 | 年代 | 评分 |
+--------------+----------+----------------+--------+------------+------+------+------+
| 美丽人生 | 42995 | 剧情/喜剧/爱情 | 意大利 | 1997-12-20 | 116 | 1997 | 9.5 |
| 肖申克的救赎 | 692795 | 剧情/犯罪 | 美国 | 1994-09-10 | 142 | 1994 | 9.6 |
+--------------+----------+----------------+--------+------------+------+------+------+
import prettytable as pt ## 按列添加数据
tb = pt.PrettyTable()
tb.field_names = ["名字","投票人数","类型","产地","上映时间","时长","年代","评分"]
tb.add_row(["美丽人生",42995,"剧情/喜剧/爱情","意大利","1997-12-20",116,1997,9.5])
tb.add_row(["肖申克的救赎",692795,"剧情/犯罪","美国","1994-09-10",142,1994,9.6])
tb.add_column('index',[1,2])
print(tb)
+--------------+----------+----------------+--------+------------+------+------+------+-------+
| 名字 | 投票人数 | 类型 | 产地 | 上映时间 | 时长 | 年代 | 评分 | index |
+--------------+----------+----------------+--------+------------+------+------+------+-------+
| 美丽人生 | 42995 | 剧情/喜剧/爱情 | 意大利 | 1997-12-20 | 116 | 1997 | 9.5 | 1 |
| 肖申克的救赎 | 692795 | 剧情/犯罪 | 美国 | 1994-09-10 | 142 | 1994 | 9.6 | 2 |
+--------------+----------+----------------+--------+------------+------+------+------+-------+
切换输出风格
import prettytable as pt ## 按列添加数据
tb = pt.PrettyTable()
tb.field_names = ["名字","投票人数","类型","产地","上映时间","时长","年代","评分"]
tb.add_row(["美丽人生",42995,"剧情/喜剧/爱情","意大利","1997-12-20",116,1997,9.5])
tb.add_row(["肖申克的救赎",692795,"剧情/犯罪","美国","1994-09-10",142,1994,9.6])
tb.add_column('index',[1,2])
## 使用不同的输出风格
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 -----
| 名字 | 投票人数 | 类型 | 产地 | 上映时间 | 时长 | 年代 | 评分 | index |
| 美丽人生 | 42995 | 剧情/喜剧/爱情 | 意大利 | 1997-12-20 | 116 | 1997 | 9.5 | 1 |
| 肖申克的救赎 | 692795 | 剧情/犯罪 | 美国 | 1994-09-10 | 142 | 1994 | 9.6 | 2 |
--- style:PLAIN_COLUMNS -----
名字 投票人数 类型 产地 上映时间 时长 年代 评分 index
美丽人生 42995 剧情/喜剧/爱情 意大利 1997-12-20 116 1997 9.5 1
肖申克的救赎 692795 剧情/犯罪 美国 1994-09-10 142 1994 9.6 2
--- style:MSWORD_FRIENDLY -----
{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{
美丽人生 42995 剧情/喜剧/爱情 意大利 1997-12-20 116 1997 9.5 1
{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{
肖申克的救赎 692795 剧情/犯罪 美国 1994-09-10 142 1994 9.6 2
{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{
--- style:DEFAULT -----
+--------------+----------+----------------+--------+------------+------+------+------+-------+
| 名字 | 投票人数 | 类型 | 产地 | 上映时间 | 时长 | 年代 | 评分 | index |
+--------------+----------+----------------+--------+------------+------+------+------+-------+
| 美丽人生 | 42995 | 剧情/喜剧/爱情 | 意大利 | 1997-12-20 | 116 | 1997 | 9.5 | 1 |
| 肖申克的救赎 | 692795 | 剧情/犯罪 | 美国 | 1994-09-10 | 142 | 1994 | 9.6 | 2 |
+--------------+----------+----------------+--------+------------+------+------+------+-------+
自定义输出格式
import prettytable as pt ## 按列添加数据
tb = pt.PrettyTable()
tb.field_names = ["名字","投票人数","类型","产地","上映时间","时长","年代","评分"]
tb.add_row(["美丽人生",42995,"剧情/喜剧/爱情","意大利","1997-12-20",116,1997,9.5])
tb.add_row(["肖申克的救赎",692795,"剧情/犯罪","美国","1994-09-10",142,1994,9.6])
tb.add_column('index',[1,2])
## 自定义表格输出样式
### 设定对齐方式
# ["l","c","r"] l:左对齐,c:中间对齐,r:右对齐
tb.align='c'
### 设定数字输出格式
tb.float_format = '1'
### 设定边框连接符为'*"
tb.junction_char = "*"
### 设定排序方式
tb.sortby = "投票人数"
### 设定左侧不填充空白字符
tb.left_padding_width = 0
### 填充宽度
tb.padding_width= 5
print(tb)
*-----------------*-------------*-------------------*-----------*---------------*---------*---------*-------------*----------*
| 名字 |投票人数 | 类型 | 产地 | 上映时间 |时长 |年代 | 评分 |index |
*-----------------*-------------*-------------------*-----------*---------------*---------*---------*-------------*----------*
| 美丽人生 | 42995 |剧情/喜剧/爱情 |意大利 |1997-12-20 |116 |1997 |9.500000 | 1 |
|肖申克的救赎 | 692795 | 剧情/犯罪 | 美国 |1994-09-10 |142 |1994 |9.600000 | 2 |
*-----------------*-------------*-------------------*-----------*---------------*---------*---------*-------------*----------*
获取特定内容
import prettytable as pt ## 按列添加数据
tb = pt.PrettyTable()
tb.field_names = ["名字","投票人数","类型","产地","上映时间","时长","年代","评分"]
tb.add_row(["美丽人生",42995,"剧情/喜剧/爱情","意大利","1997-12-20",116,1997,9.5])
tb.add_row(["肖申克的救赎",692795,"剧情/犯罪","美国","1994-09-10",142,1994,9.6])
tb.add_column('index',[1,2])
## 不打印,获取表格字符串
s = tb.get_string()
print(s) ## 可以只获取指定列或行
##这里只获取'名字'与'时长'这两列,从第一行到第二行
s = tb.get_string(fields=["名字", '时长'],start=1,end=2)
print(s)
+--------------+----------+----------------+--------+------------+------+------+------+-------+
| 名字 | 投票人数 | 类型 | 产地 | 上映时间 | 时长 | 年代 | 评分 | index |
+--------------+----------+----------------+--------+------------+------+------+------+-------+
| 美丽人生 | 42995 | 剧情/喜剧/爱情 | 意大利 | 1997-12-20 | 116 | 1997 | 9.5 | 1 |
| 肖申克的救赎 | 692795 | 剧情/犯罪 | 美国 | 1994-09-10 | 142 | 1994 | 9.6 | 2 |
+--------------+----------+----------------+--------+------------+------+------+------+-------+
+--------------+------+
| 名字 | 时长 |
+--------------+------+
| 肖申克的救赎 | 142 |
+--------------+------+
python模块——PrettyTable的更多相关文章
- Python模块——PrettyTable 模块
简介 PrettyTable 是python中的一个第三方库,可用来生成美观的ASCII格式的表格,十分实用. 安装 pip install prettytable 示例 从已有文件创建 CSV fr ...
- Python模块之"prettytable"
Python模块之"prettytable" 摘要: Python通过prettytable模块可以将输出内容如表格方式整齐的输出.(对于用Python操作数据库会经常用到) 1. ...
- [转]Python 模块收集
Python 模块收集 转自:http://kuanghy.github.io/2017/04/04/python-modules Python | Apr 4, 2017 | python 工具 a ...
- 使用C/C++写Python模块
最近看开源项目时学习了一下用C/C++写python模块,顺便把学习进行一下总结,废话少说直接开始: 环境:windows.python2.78.VS2010或MingW 1 创建VC工程 (1) 打 ...
- Python模块之configpraser
Python模块之configpraser 一. configpraser简介 用于处理特定格式的文件,其本质还是利用open来操作文件. 配置文件的格式: 使用"[]"内包含 ...
- python 学习第五天,python模块
一,Python的模块导入 1,在写python的模块导入之前,先来讲一些Python中的概念性的问题 (1)模块:用来从逻辑上组织Python代码(变量,函数,类,逻辑:实现一个功能),本质是.py ...
- windows下安装python模块
如何在windows下安装python模块 1. 官网下载安装包,比如(pip : https://pypi.python.org/pypi/pip#downloads) pip-9.0.1.tar. ...
- 安装第三方Python模块,增加InfoPi的健壮性
这3个第三方Python模块是可选的,不安装的话InfoPi也可以运行. 但是如果安装了,会增加InfoPi的健壮性. 目录 1.cchardet 自动检测文本编码 2.lxml 用于解析 ...
- Python基础篇【第5篇】: Python模块基础(一)
模块 简介 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就 ...
随机推荐
- ServiceMesh了解一下
http://www.servicemesh.cn/?/article/70 https://zhuanlan.zhihu.com/p/33196550
- golang使用simplejson库解析复杂json
cnblogs原创 golang自带的json解析库encoding/json提供了json字符串到json对象的相互转换,在json字符串比较简单的情况下还是挺好用的,但是当json字符串比较复杂或 ...
- python - class类 (六) 三大特性 - 多态
多态的概念: # 多态的概念 # 指出了对象如何通过他们共同的属性和动作来操作及访问而不需考虑他们的具体的类 # 多态表明了动态绑定的存在,允许重载及运行时类型确定和验证. # 示例模拟: #水具有多 ...
- Linux 内核里的“智能指针”【转】
转自:http://blog.jobbole.com/88279/ 众所周知,C/C++语言本身并不支持垃圾回收机制,虽然语言本身具有极高的灵活性,但是当遇到大型的项目时,繁琐的内存管理往往让人痛苦异 ...
- mysql安装与卸载(阿里云)
1.安装rpm包rpm -Uvh http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm 2.安装mysqlyum -y i ...
- Ex 6_16 旧货销售问题_第七次作业
即可 子问题定义:定义数组B(S,j),其中 B(S,j)表示在子集S中结束位置为j的子问题的最大收益值,其中j的前一个地点有两种情况,第一种情况是某个拍卖会 另一种情况是从家里出发. 递归关系: 初 ...
- 转 利用 Console 来学习、调试JavaScript
利用 Console 来学习.调试JavaScript 一 什么是 Console Console 是用于显示 JS和 DOM 对象信息的单独窗口.并且向 JS 中注入1个 console 对象 ...
- ios如何实现静音模式下声音仍然可以外放
AVAudioSession *audioSession = [AVAudioSession sharedInstance]; [audioSession setCategory:AVAudioSes ...
- python+selenium十一:jQuery和js语法、js处理iframe
selenium 执行jQuery/js语法 driver.execute_script(jQuery/js) 1.jQuery jQuery只支持css语法: jquery = '$(CSS).va ...
- Intellij IDEA配置tomcat热部署
idea2017+tomcat8为本文的实验环境 1.打开tomcat的edit configuration,一定要选择war exploded 在idea tomcat 中server的配置里,有 ...