Excel无法打开Python生成的CSV文件

时间:2013-10-26 19:50:32

标签: python excel csv osx-mavericks

我有很多输出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中更改的设置?感谢。

2 个答案:

答案 0 :(得分:3)

也许我有类似的问题,错误信息" SYLK:文件格式无效"当打开python自动生成的csv文件。解决方案真的很有趣。前两个字符不能是大写的IDID)。另请参阅"SYLK: File format is not valid" error message when you open file

答案 1 :(得分:2)

可能的解决方案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])