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最初の 2 文字をD大文字 ( ) にすることはできませんIDファイルを開いたときの「SYLK: ファイル形式が無効です」というエラー メッセージも参照してください。

于 2016-05-11T09:06:23.110 に答える
3

考えられる解決策 1: *.csv の代わりに *.txt を使用します。この場合、Excel (少なくとも 2010) は、区切り記号、文字エンコード、フィールド タイプなどを指定できるデータ インポート ウィザードを表示します。

UPD: Solution2: python "csv" モジュールには "方言" 機能があります。たとえば、コードを次のように変更すると、私の環境 (Python 2.7、Excel 2010、Windows7、";" リスト区切り文字を含むロケール) で有効な csv ファイルが生成されます。

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 に答える