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的更多相关文章

  1. Python模块——PrettyTable 模块

    简介 PrettyTable 是python中的一个第三方库,可用来生成美观的ASCII格式的表格,十分实用. 安装 pip install prettytable 示例 从已有文件创建 CSV fr ...

  2. Python模块之"prettytable"

    Python模块之"prettytable" 摘要: Python通过prettytable模块可以将输出内容如表格方式整齐的输出.(对于用Python操作数据库会经常用到) 1. ...

  3. [转]Python 模块收集

    Python 模块收集 转自:http://kuanghy.github.io/2017/04/04/python-modules Python | Apr 4, 2017 | python 工具 a ...

  4. 使用C/C++写Python模块

    最近看开源项目时学习了一下用C/C++写python模块,顺便把学习进行一下总结,废话少说直接开始: 环境:windows.python2.78.VS2010或MingW 1 创建VC工程 (1) 打 ...

  5. Python模块之configpraser

    Python模块之configpraser   一. configpraser简介 用于处理特定格式的文件,其本质还是利用open来操作文件. 配置文件的格式: 使用"[]"内包含 ...

  6. python 学习第五天,python模块

    一,Python的模块导入 1,在写python的模块导入之前,先来讲一些Python中的概念性的问题 (1)模块:用来从逻辑上组织Python代码(变量,函数,类,逻辑:实现一个功能),本质是.py ...

  7. windows下安装python模块

    如何在windows下安装python模块 1. 官网下载安装包,比如(pip : https://pypi.python.org/pypi/pip#downloads) pip-9.0.1.tar. ...

  8. 安装第三方Python模块,增加InfoPi的健壮性

    这3个第三方Python模块是可选的,不安装的话InfoPi也可以运行. 但是如果安装了,会增加InfoPi的健壮性. 目录 1.cchardet    自动检测文本编码 2.lxml    用于解析 ...

  9. Python基础篇【第5篇】: Python模块基础(一)

    模块 简介 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就 ...

随机推荐

  1. 第14月第17天 automaticallyAdjustsScrollViewInsets contentInsetAdjustmentBehavior

    1. automaticallyAdjustsScrollViewInsets self.edgesForExtendedLayout = UIRectEdgeNone; if ([self resp ...

  2. emacs(考场+平时)配置方案

    考场配置: ;;在配置后面会对语句逐一解释的 (global-set-key (kbd "C-z") 'undo) (global-set-key (kbd "RET&q ...

  3. 2018-2019 前期任务(一):资料阅读&Python入门

    2018-2019 前期任务(一):资料阅读&Python入门 资料原文地址:Dumbcoin - An educational python implementation of a bitc ...

  4. shiro自定义realm支持MD5算法认证(六)

    1.1     散列算法 通常需要对密码 进行散列,常用的有md5.sha, 对md5密码,如果知道散列后的值可以通过穷举算法,得到md5密码对应的明文. 建议对md5进行散列时加salt(盐),进行 ...

  5. Ajax文件上传并添加Bootstrap进度条

    1.项目中需要用到文件上传和显示进度,网上各种插件搞得头晕,决定自己实现一个 三个步骤:Ajax上传文件,获取上传进度,显示进度 html: <!DOCTYPE HTML> <htm ...

  6. win10-Anaconda2-Theano-cuda7.5-VS2013

    两天的辗转反侧,终于灵光一现找到了错误. 首先,我在win10下配置好了gpu和cudnn版本的caffe.但是因为win平台的限制,caffe用的不够舒服.因为之前用过一阵子theano,虽然很慢, ...

  7. kindle转换工具-calibre

    kindle转换工具  calibre https://calibre-ebook.com/download_windows

  8. VS2017编译boost库

    1.http://www.boost.org/     下载boost库. 2.解压到 D:\ProgramFiles\boost 3.环境配变量配置     VS2017更加注重跨平台性,安装文件较 ...

  9. centos系统设置通过windows代理上网

    网络环境说明: 物理机windows xp sp3系统 ip:192.168.29.21(通过路由上网,有权限设置proxy给其他机器代理上网) 虚拟机centos5.5系统 ip:192.168.2 ...

  10. vue 安装教程(自己安装过程及遇到的一些坑)

    1.安装node.js(http://www.runoob.com/nodejs/nodejs-install-setup.html) 2.基于node.js,利用淘宝npm镜像安装相关依赖 在cmd ...