2013-10-26 99 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])