【问题标题】:Python csv - fit cells' size to fit strings' length?Python csv - 适合单元格的大小以适合字符串的长度?
【发布时间】:2019-01-01 21:33:33
【问题描述】:

我正在使用 Python 的 csv 库和 DictWriter 对象将字典写入 csv 文件,如下所示:

with open('test.csv', 'w', newline='') as fp:
    fieldnames = [<fieldnames for csv DictWriter>]

    dict_writer = csv.DictWriter(fp, fieldnames=fieldnames)
    dict_writer.writeheader()
    dict_writer.writerow(<some dictionary here>)

结果是,如果我有一个长名称作为字典的值之一,则单元格如下所示:

但我希望它看起来像 这个

有没有办法让单元格的大小适应字符串的长度?我想这是一个相对常见的问题,因为您不想在每次打开 csv 文件时手动执行此操作。

我怎样才能预先适应它?

【问题讨论】:

  • 问题与 CSV 阅读器有关,在您的情况下似乎是 Microsoft Excel。使用另一种允许您执行此操作的格式怎么样,例如 XLS (stackoverflow.com/questions/17326973/…)
  • CSV 是一种简单的文本格式(在文本编辑器中打开它就会看到),它不包含有关电子表格程序应如何显示它的信息。有几种方法可以使 Excel 自动适应列宽,请查看this answer on Superuser
  • 谢谢! :) 链接中的解决方案(有效)是使用StyleFrame 库,该库适用于 xlsx 文件,实际上可以让您修改单元格的宽度。谢谢

标签: python python-3.x


【解决方案1】:

CSV 没有格式信息。它只有数据。如何调整单元格大小取决于查看器配置。

如果你真的需要格式化,你应该写成接收应用程序的文件格式(.ods、.xls、.xlsx...)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-10
    • 2014-09-02
    • 2012-08-29
    • 1970-01-01
    • 2014-06-10
    相关资源
    最近更新 更多