Python——PrettyTable

13 篇文章 1 订阅

目录

一、说明

二、安装

三、导入

四、基本使用 

        1、创建表格

        2、设置表的名称

        3、按行/列添加数据: 

        4、一次性添加多行

        5、根据CSV导入

         6、从数据库中导入

        7、表数据的删除

        8、显示表格

        9、显示指定的列 

​        10、显示指定的行


一、说明

        PrettyTable 是python中的一个第三方库,可用来生成美观的ASCII格式的表格,十分实用

二、安装

        使用pip即可十分方便的安装PrettyTable(命令行窗口安装),如下:

        先windows+R打开命令行窗口

        然后输入pip install PrettyTable

pip install PrettyTable

三、导入

        from prettytable import PrettyTable 或者 import prettytable as pt

四、基本使用 

        1、创建表格

 创建表:
     tb = pt.PrettyTable()或x = PrettyTable()

  按行/列添加数据:
     tb.add_row( <llist> )

     tb.add_column( <llist> )

        2、设置表的名称

x.title = 'Table 1  City Info'

        3、按行/列添加数据: 

>>> ## 按行添加数据
... 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   |
+-----------+------+------------+-----------------+-------+
>>> 
 

        4、一次性添加多行

x.field_names = ["City name", "Area", "Population", "Annual Rainfall"]
x.add_rows(
    [
        ["Adelaide", 1295, 1158259, 600.5],
        ["Brisbane", 5905, 1857594, 1146.4],
        ["Darwin", 112, 120900, 1714.7],
        ["Hobart", 1357, 205556, 619.5],
        ["Sydney", 2058, 4336374, 1214.8],
        ["Melbourne", 1566, 3806092, 646.9],
        ["Perth", 5386, 1554769, 869.4],
    ]
)

     注意:add_column的第一个参数表示列的字段名,为字符串,第二个参数为列表,即添加到该列的数据。没有一次性添加多列的方法。

        5、根据CSV导入

                PrettyTable不仅提供了手动按行按列添加数据,也支持直接从csv文件中读取数据,需要注意的是,字符串需要加上引号。如果要读取cvs文件数据,必须要先导入from_csv,否则无法运行

from prettytable import from_csv
with open("CityInfo.csv") as fp:
    mytable = from_csv(fp)
print(mytable)

         6、从数据库中导入

                从数据库查询出来的数据可以直接导入到表格打印

#!/usr/bin/python
#**coding:utf-8**
import sys
from prettytable import PrettyTable
from prettytable import from_db_cursor
import sqlite3
reload(sys)
sys.setdefaultencoding('utf8')

conn = sqlite3.connect("/tmp/aliyun.db")
cur = conn.cursor()
cur.execute("SELECT * FROM res")
table = from_db_cursor(cur)
print(table)

+------+----------+----------+------------+
| 编号 |  云编号  |   名称   |   IP地址   |
+------+----------+----------+------------+
|  1   | server01 | 服务器01 | 172.16.0.1 |
|  2   | server02 | 服务器02 | 172.16.0.2 |
|  3   | server03 | 服务器03 | 172.16.0.3 |
|  4   | server04 | 服务器04 | 172.16.0.4 |
|  5   | server05 | 服务器05 | 172.16.0.5 |
|  6   | server06 | 服务器06 | 172.16.0.6 |
|  7   | server07 | 服务器07 | 172.16.0.7 |
|  8   | server08 | 服务器08 | 172.16.0.8 |
|  9   | server09 | 服务器09 | 172.16.0.9 |
+------+----------+----------+------------+ 

        7、表数据的删除

   prettytable提供四种方法用于删除数据:

del_row:删除某行,允许传入一个整数参数,(从0开始)。
del_column:删除某列,允许传入一个字符串,表示要删除的列的字段名。
clear_rows:删除所有数据,但保存列的字段名。
clear:删除所有数据,包括列的字段名。

        8、显示表格

print(x)
mystring = x.get_string()

get_string()函数可以将上面print的结果直接转化为字符串,可以将这个结果写到文本文件里。当然也可以打印出来。

print(x.get_string())

        9、显示指定的列 

print(x.get_string(fields=["City name", "Population"]))


        10、显示指定的行

print(x.get_string(start=1, end=4))


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值