PrettyTable介绍与基本使用
相信很多小伙伴在使用python
需要查看表格数据,直接print
出来呢?又乱了。PrettyTable
可以解决这个问题,说个简单的应用,在爬12306
网站的数据,需要表格展示,更加清晰,如下图:
这样在输出的窗口可以很清晰看到所需要的信息。那么类似这种表格要怎么做出来呢?没错,使用PrettyTable
就会把事情变得很简单。
PrettyTable 安装
PrettyTable
安装很简单,直接使用pip
安装即可:
python -m pip install -U prettytable
#### 或者
pip install -U prettytable
PrettyTable 基本使用
PrettyTable
用于创建和展示表格数据,所以就先创建个表格把。
创建表格
from prettytable import PrettyTable
x = PrettyTable()
当然我们可以设置表格的名称:
x.title = 'Table 1 City Info'
添加一行数据
接下来给表格添加数据,包括字段名和数据,分别用field_name
s和add_row
函数,例子来自官网:
x.field_names = ["City name", "Area", "Population", "Annual Rainfall"]
x.add_row(["Adelaide", 1295, 1158259, 600.5])
x.add_row(["Brisbane", 5905, 1857594, 1146.4])
x.add_row(["Darwin", 112, 120900, 1714.7])
x.add_row(["Hobart", 1357, 205556, 619.5])
x.add_row(["Sydney", 2058, 4336374, 1214.8])
x.add_row(["Melbourne", 1566, 3806092, 646.9])
x.add_row(["Perth", 5386, 1554769, 869.4])
现在就打印出来看看,直接print(x)
。
这种可视化的效果真的好。那接下来在看看其他的方法。
一次性添加多行
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],
]
)
添加一列
x.add_column("City name",
["Adelaide","Brisbane","Darwin","Hobart","Sydney","Melbourne","Perth"])
x.add_column("Area", [1295, 5905, 112, 1357, 2058, 1566, 5386])
x.add_column("Population", [1158259, 1857594, 120900, 205556, 4336374, 3806092,
1554769])
x.add_column("Annual Rainfall",[600.5, 1146.4, 1714.7, 619.5, 1214.8, 646.9,
869.4])
注意:add_column的第一个参数表示列的字段名,为字符串,第二个参数为列表,即添加到该列的数据。没有一次性添加多列的方法。
当然,可以混合使用add_row
和add_column
,但是混合使用很容易混乱。
根据csv导入
prettytable
支持从csv
文件中导入数据并创建表格,需要注意的是,字符串需要加上引号。
from prettytable import from_csv
with open("CityInfo.csv") as fp:
mytable = from_csv(fp)
print(mytable)
从数据库中导入
import sqlite3
from prettytable import from_db_cursor
connection = sqlite3.connect("mydb.db")
cursor = connection.cursor()
cursor.execute("SELECT field1, field2, field3 FROM my_table")
mytable = from_db_cursor(cursor)
表数据的删除
prettytable
提供四种方法用于删除数据:
del_row
:删除某行,允许传入一个整数参数,(从0开始)。del_column
:删除某列,允许传入一个字符串,表示要删除的列的字段名。clear_rows
:删除所有数据,但保存列的字段名。clear
:删除所有数据,包括列的字段名。
显示表格
前面弄了那么多,都是为了最后的表格显示,这里说说prettytable
的显示表格方法。最简单的就是:
print(x)
mystring = x.get_string()
get_string()
函数可以将上面print
的结果直接转化为字符串,可以将这个结果写到文本文件里。当然也可以打印出来。
print(x.get_string())
显示指定的列
print(x.get_string(fields=["City name", "Population"]))
显示指定的行
print(x.get_string(start=1, end=4))
这里的start
和end
分别表示所要显示的起始行和终止行。这里的索引和python
一样,从0
开始,并且不包括end
所指的行。