在Python中将数据输出顺序打印为格式化表格

Bil*_*ill 5 python format console dataframe output

我正在研究 Python 包,它们提供了一种简单的方法来将格式化的“漂亮”表格作为文本输出。这个答案提供了一些建议。问题是,我想像记录器一样按顺序打印我的表(一次一行)。

为了说明这一点, tabulate的输出非常适合我的应用程序:

from tabulate import tabulate   
some_data = [['08:01', 1.00, 32], ['08:02', 1.01, 33], ['08:03', 1.02, 33]]
headers = ['Time', 'x', 'n']
print(tabulate(some_data, headers=headers, tablefmt='plain'))
Run Code Online (Sandbox Code Playgroud)

输出:

Time       x    n
08:01   1      32
08:02   1.01   33
08:03   1.02   33
Run Code Online (Sandbox Code Playgroud)

但我想一次执行一个操作,而不是一次性执行所有操作: 1. 打印标题 2. 打印第一行数据 3. 打印下一行 4. ...等等。

当然,我尝试过这个:

print(tabulate(some_data[0:1], tablefmt='plain'))
Run Code Online (Sandbox Code Playgroud)

输出:

08:01  1  32
Run Code Online (Sandbox Code Playgroud)

这显然不会完美地工作,因为每行的格式每次都会不同。所以我需要一个包,您可以先在其中设置表格(指定所需的格式、列宽等)。然后一次一行输出数据。

有谁知道这是否可以在这些包之一或我可以导入的另一个包中实现?

mat*_*tch 3

只需使用内置的 python 命令即可获得非常好的简单表格format。您可以指定格式字符串,然后将其用作“模板”并传入要应用于该模板的数据。

format_string = "{:<10}{:<8}{:<10}"
print(format_string.format(*headers))
for entry in some_data:
    print(format_string.format(*entry))
Run Code Online (Sandbox Code Playgroud)

有关填充等各种选项的完整列表,请参阅https://pyformat.info