【发布时间】:2015-07-17 15:51:02
【问题描述】:
我有数百个 XLSX 文件,它们都有包含长数字帐号的列。我需要自动将所有这些文件转换为 CSV。这对于像ssconvert 这样的工具来说是微不足道的。但是,由于 Excel 和 Libreoffice 中的 错误 feature,长数字字段将使用科学计数法显示,并且如果导出为 CSV,则此格式化数字(不是基础数据)将被保留。
这意味着任何自动转换为 CSV 都会截断帐号,因为值 1240800388917 将作为 1.2408E+12 或 1240800000000 写入 CSV,从而导致数据损坏。
这很容易通过手动打开 Excel 文件并将这些列设置为“文本”格式来解决。但是,对数百个文件执行此操作有点乏味,特别是因为其中许多文件具有奇怪的宏和格式,这使得 Libreoffice 需要几分钟才能打开每个文件(我想将它们全部转换为 CSV 的另一个原因第一名)。
使用 Python 自动打开每个文件并将整个列的格式更改为“文本”的最简单方法是什么?我看到很多关于如何读取 XLS/XLSX 文件并在某些情况下编写它们的 Python 示例,但是我可以找到一些关于操作列的默认格式的指南。
【问题讨论】: