如何为Python PrettyTable添加ljust(7)以实现日志输出对齐
如何让Python PrettyTable输出与日志消息对齐?
嘿,我懂你想要的效果了!你已经用PrettyTable生成了表格,也设置了列左对齐,但现在需要让整个表格的每一行都和日志里的文本对齐,对吧?
你的问题核心是:日志行有INFO:前缀,直接打印的表格是顶格的,所以需要给表格的每一行添加缩进,让它和日志内容的起始位置对齐。
修改后的代码
这里给你调整后的代码,核心思路是把表格转换成字符串后,逐行添加缩进:
from prettytable import PrettyTable # 记得导入模块哦 t = PrettyTable() t.title = 'TRACKS' t.field_names = ['#', 'Bitrate', 'Size','Name', 'Resolution'] for v in test: t.add_row([v['num'], v['bitrate'], v['size'], v['profile'], v['resolution']]) t.align = 'l' # 保持每一列左对齐的设置 # 将表格转为字符串并拆分成单独的行 table_content = t.get_string().splitlines() # 给每一行添加7个空格的缩进,和日志消息对齐 for line in table_content: print(' ' * 7 + line)
为什么这样做?
t.get_string()会把整个表格转换成一个多行的字符串,方便我们逐行处理。' ' *7会给每一行前面加上7个空格,刚好和你示例里INFO:后面的文本起始位置对齐。如果需要调整缩进宽度,只需要修改数字7就行。- 保留了你原来设置的
t.align = 'l',确保每一列的内容还是左对齐的状态。
这样输出的表格就会和你的日志完美对齐啦!
内容的提问来源于stack exchange,提问作者mark12345
相关产品推荐
相关产品推荐

