axuziyi 2023-09-17 01:42 采纳率: 33.3%
浏览 14

关于使用Python的tabulate库写入txt文件还是对不齐的问题

关于使用Python(3.9)的tabulate库写入txt文件还是对不齐的问题(PycharmIDE)

我先前去拿设备管理器的驱动版本,已经通过devcon.exe使用命令行拿到了,现在想要写入txt文件,包含三个参数,驱动名称,驱动日期和驱动版本。

于是找到了tabulate库,按照方法,我打印出来以及使用pycharm预览txt文件都是对齐的

img

结果写进去了一到txt查看就开始作妖了>_<

img

核心代码:

        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写入机制有些区别

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-09-17 04:02
    关注

    【以下回答由 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)
    

    这样,通过将空格替换为制表符,可以保持文件中的对齐效果与预览一致。


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 9月17日

悬赏问题

  • ¥30 STM32 INMP441无法读取数据
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥500 把面具戴到人脸上,请大家贡献智慧
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
  • ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急
  • ¥30 c#打开word开启修订并实时显示批注
  • ¥15 如何解决ldsc的这条报错/index error
  • ¥15 VS2022+WDK驱动开发环境