有时候我们需要将结果以表格形式打印出,这样显得整齐美观,PrettyTable 就能实现。
PrettyTable
PrettyTable 是用于生成简单 ASCII 表的 Python 库。 它的灵感来自 PostgreSQL shell psql 中使用的 ASCII 表。 我们可以控制表格的许多方面,例如列填充的宽度,文本的对齐方式或表格边框。 我们可以对数据进行排序。
我们还可以选择在最终输出中将显示哪些列和行。 PrettyTable 可以从 CSV,HTML 或数据库光标读取数据,并以 ASCII 或 HTML 输出数据。
生成 PrettyTable
可以使用add_row()
或add_column()
方法创建表。
实例1:
使用add_row()
方法创建一个 PrettyTable
#!/usr/bin/python3
from prettytable import PrettyTable #从模块中导入PrettyTable
x = PrettyTable()
x.field_names = ["City name", "Area", "Population", "Annual Rainfall"] # 设置标题名称
x.add_row(["Adelaide", 1295, 1158259, 600.5]) # 这些行通过add_row()添加到表中
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)
输出结果:
实例2:
使用add_column()
方法创建相同的表
#!/usr/bin/python3
from prettytable import PrettyTable
x = PrettyTable()
column_names = ["City name", "Area", "Population", "Annual Rainfall"] # 列名是add_column()方法的第一个参数
x.add_column(column_names[0], ["Adelaide", "Brisbane", "Darwin",
"Hobart", "Sydney", "Melbourne", "Perth"])
x.add_column(column_names[1], [1295, 5905, 112, 1357, 2058, 1566, 5386 ])
x.add_column(column_names[2], [1158259, 1857594, 120900, 205556, 4336374,
3806092, 1554769])
x.add_column(column_names[3], [600.5, 1146.4, 1714.7, 619.5, 1214.8,
646.9, 869.4])
print(x)
PrettyTable 删除行
使用del_row()
可以删除特定的行。 该方法获取要删除的行的索引。 请注意,索引从零开始。
from prettytable import PrettyTable
x = PrettyTable()
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])
x.del_row(6)
x.del_row(5)
x.del_row(4)
x.del_row(3)
print(x)
在示例中,我们删除最后四行,前三行保留在输出中。
PrettyTable 清除数据
clear_rows()
方法从表中删除所有行,但保留当前的列名。 clear()
方法清除行名和列名。
from prettytable import PrettyTable
x = PrettyTable()
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])
x.clear_rows()
print(x)
该示例清除表中的所有行。这是示例的输出。 该表的标题不会被删除。
从 CSV 生成 PrettyTable
from_csv()
方法可用于从 CSV 数据生成 PrettyTable。
"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
"Sydney", 2058, 4336374, 1214.8
"Melbourne", 1566, 3806092, 646.9
"Perth", 5386, 1554769, 869.4
data.csv
包含用逗号分隔的数据。 请注意,第一行由表列名称组成。
from prettytable import from_csv
with open("data.csv", "r") as fp:
x = from_csv(fp)
print(x)
该示例从data.csv
读取数据,并从中生成带有from_csv()
的 PrettyTable。
推荐一个编程学习网站:https://geek-docs.com/