于是找到了tabulate库,按照方法,我打印出来以及使用pycharm预览txt文件都是对齐的
结果写进去了一到txt查看就开始作妖了>_<
核心代码:
all = zip(all_descriptionre, all_date, all_version)
# all_descriptionre, all_date, all_version是三个列表
table = tabulate(all, headers=['driver_description', 'driver_date', 'driver_version'], tablefmt='grid')
print(tabulate(all, headers=['driver_description', 'driver_date', 'driver_version'], tablefmt='grid'))
with open("alldrives.txt", "w+", encoding="utf-8") as f:
f.write(table)
想问一下是出了什么问题,还是说f.write写入机制有些区别
【以下回答由 GPT 生成】
问题分析:
根据提供的信息,您使用tabulate库将数据写入txt文件时,发现对齐有问题。在您的代码中,您先将data、date和version三个列表使用zip函数合并到一起,然后使用tabulate库的tablefmt='grid'参数将其转换为表格,并使用print函数打印输出,再利用open函数以写入模式打开一个txt文件,将表格写入该文件。
问题解决方案:
在使用tabulate库转换为表格后,可以调用replace方法,将表格中的空格替换为制表符\t
,即将table.replace(' ', '\t')
,然后再写入txt文件。
all = zip(all_descriptionre, all_date, all_version)
table = tabulate(all, headers=['driver_description', 'driver_date', 'driver_version'], tablefmt='grid')
table = table.replace(' ', '\t') # 替换空格为制表符
with open("alldrives.txt", "w+", encoding="utf-8") as f:
f.write(table)
这样,通过将空格替换为制表符,可以保持文件中的对齐效果与预览一致。