Python漂亮表格:在表头上方添加标题

7

我有一个脚本能够生成多个表格,这些表格都有相同的列名和非常相似的数据。到目前为止,我一直通过在每个表格之前打印标题来使每个表格唯一,例如:

print("Results for Method Foo")
#table 1
print("Results for Method Bar")
#table 2 

等等,这并不是很美观...

虽然它似乎是一个明显的用例,但我找不到任何地方可以做到像这样的事情:

带标题的PrettyTable

有什么想法可以实现这个吗?

以防万一:我正在使用python 3.4,虚拟环境和prettytable版本0.7.2。

1个回答

6

这可以通过使用PTable库来实现,该库最初是从PrettyTable分支而来。我在文档中没有找到这个信息,所以对其他人有用的语法如下:

from prettytable import PrettyTable

table = PrettyTable()

table.title = 'Results for method Foo'
table.field_names = ['Experiment', 'Value']
table.add_row(['bla', 3.14])
table.add_row(['baz', 42.0])

print(table)

这将产生所需的输出:
+-------------------------+
|  Results for method Foo |
+---------------+---------+
|   Experiment  |  Value  |
+---------------+---------+
|      bla      |   3.14  |
|      baz      |   42.0  |
+---------------+---------+

3
对我来说这不起作用,表格标题没有显示。在 Python 3.4.3 和以下依赖项进行了测试:tables(3.4.2),prettytable(0.7.2)。 - istern
它只能与PTable一起使用(请参见上面的链接,我使用的是0.9.2版本)。这是一个不同的软件包,但与prettytable共享基本语法,因为它最初是从它派生的。 - TimD
2
在添加了PTable依赖项(pip install ptable)之后,它确实可以工作。接受你的答案。 - istern

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接