python pretty结果示例

1.使用tabulate

使用tabulate将前6个英文大写字符与其对应的ASCII码显示出来:

from tabulate import tabulate
import string
s=string.ascii_uppercase

headers = ['alpha', 'digit code']
table = [[i,s[i],ord(s[i])] for i in range(4)]
res=tabulate(table, headers,numalign = "center",stralign= "center",tablefmt='pretty')
print(res)

numalignstralign用来调节数字/字符在表格中位置"right", "center", "left", "decimal"

tablefmt来调整表格的风格,一般直接选tablefmt='pretty',应该就可以满足要求了。

其他风格见官方网页(参考文献1)。

效果如下:

+---+-------+------------+
|   | alpha | digit code |
+---+-------+------------+
| 0 |   A   |     65     |
| 1 |   B   |     66     |
| 2 |   C   |     67     |
| 3 |   D   |     68     |
+---+-------+------------+

也可以在参数里多加一个showindex=True,用来在第一列显示index。

res=tabulate(table, headers,numalign = "center",stralign= "center",tablefmt='pretty',showindex=True)

效果如下:

+---+---+-------+------------+
|   |   | alpha | digit code |
+---+---+-------+------------+
| 0 | 0 |   A   |     65     |
| 1 | 1 |   B   |     66     |
| 2 | 2 |   C   |     67     |
| 3 | 3 |   D   |     68     |
+---+---+-------+------------+

2.使用terminaltables

from terminaltables import AsciiTable
import string
s=string.ascii_uppercase

table = [[" ", 'alpha', 'digit code']]
table +=[[i,s[i],ord(s[i])] for i in range(4)]
Tabel=AsciiTable(table)
Tabel.justify_columns[1] = 'center'
print(Tabel.table)

结果为:

+---+-------+------------+
|   | alpha | digit code |
+---+-------+------------+
| 0 |   A   | 65         |
| 1 |   B   | 66         |
| 2 |   C   | 67         |
| 3 |   D   | 68         |
+---+-------+------------+

3.tabulate和AsciiTable的简单比较

二者相比较,前面的编程实现都差不多,均要建立一个二维的列表,把需要显示的数据按行放进去。

扫描二维码关注公众号,回复: 13372006 查看本文章

另外,tabulate把header也作为一个参数。

差别主要在显示方面,如调节居中时,tabulate按数字/字符进行调整;而AsciiTable是按列。

类似的还有PrettyTable,不再赘述。

参考文献

[1] https://pypi.org/project/tabulate/
[2] https://robpol86.github.io/terminaltables/settings.html

猜你喜欢

转载自blog.csdn.net/WANGWUSHAN/article/details/116205253