3

我有许多输出 CSV 文件的 Python 脚本。在 Excel 中打开这些文件有时会很方便。安装 OS X Mavericks 后,Excel 不再正确打开这些文件:Excel 不会解析文件,它会复制文件的行,直到内存不足。具体来说,当 Excel 尝试打开文件时,会出现提示:“文件未完全加载”。

我用来生成 CSV 文件的代码示例:

import csv
with open('csv_test.csv', 'wb') as f:
    writer = csv.writer(f)
    writer.writerow([1,2,3])
    writer.writerow([4,5,6])

即使是上述代码生成的简单文件也无法在 Excel 中加载。但是,如果我在文本编辑器中打开 CSV 文件并将文本复制/粘贴到 Excel 中,将其与文本一起解析到列中,然后从 Excel 中另存为 CSV,那么我可以毫无问题地在 Excel 中重新打开 CSV 文件。我是否需要在我的脚本中传递一个额外的参数以使 Excel 以与以前相同的方式解析 CSV 文件?或者我可以在 OS X Mavericks 或 Excel 中更改一些设置吗?谢谢。

4

2 回答 2

5

也许我有类似的问题,打开python自动生成的csv文件时出现错误消息“SYLK:文件格式无效”。解决方案真的很有趣。前两个字符不得为大写 ( )I和。另请参阅打开文件时的“SYLK:文件格式无效”错误消息DID

于 2016-05-11T09:06:23.110 回答
3

可能的解决方案 1:使用 *.txt 而不是 *.csv。在这种情况下,Excel(至少 2010 年)将向您显示一个导入数据向导,您可以在其中指定分隔符、字符编码、字段类型等。

UPD:解决方案2:python“csv”模块具有“方言”功能。例如,您的代码的以下修改会为我的环境生成有效的 csv 文件(Python 2.7、Excel 2010、Windows7、带有“;”列表分隔符的区域设置):

import csv
with open('csv_test2.csv', 'wb') as f:
    csv.excel.delimiter=';'
    writer = csv.writer(f, dialect=csv.excel)
    writer.writerow([1,2,3])
    writer.writerow([4,5,6])
于 2013-10-27T01:59:03.793 回答