2013-10-26 54 views
1

我有很多输出CSV文件的Python脚本。在Excel中打开这些文件有时很方便。安装OS X Mavericks后,Excel不再正确打开这些文件:Excel不会解析这些文件,它会复制文件的行直到内存不足。特别是,当Excel尝试打开该文件时,会出现一条提示,内容如下:“文件未完全加载”。的代码Excel无法打开Python生成的CSV文件

实施例我使用以生成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中更改?谢谢。

+1

绝对不是python问题。至于如何使用excel,询问超级用户... – l4mpi

+0

确认:上面的代码(当然,当正确缩进时)会创建Excel无法读取的CSV文件? –

+0

Excel for Mac或Windows上的Excel? –

回答

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])