2016-06-15 12 views
-1

以下の問題は一時的に解決されています。入力ファイル(csv)にエラーが発生した特殊文字(Aimiなど)があることがわかりました。私は文字を手動で変更するようになりました(例えば、Aimi - > Aime)。self.encoding_errors&closedファイルの入出力操作

前の質問:

csvファイルへの書き込み中に、私はunicodecsvを使用しています。私のプログラムは、以下のエラーが発生するまでスムーズに走った。助けてもらえますか?

コード:

import unicodecsv as csv 
output_csv_write = open(csv_file_name_write,'w') 
csv_file_write = csv.writer(output_csv_write, encoding='utf-8') 
csv_file_write.writerow([An array of info]) 

まずエラー:

UnicodeDecodeError: 'utf8' codec can't decode bytes in position 3-4: unexpected end of data 

上記のエラーを見た後、私は実行してデバッグしよう:

csv_file_write.writerow(['A','B','C']) 

と私はように、第2のエラーを受信しました以下:

 84  def writerow(self, row): 
    85   return self.writer.writerow(
---> 86     _stringify_list(row, self.encoding, self.encoding_errors)) 
    87 
    88  def writerows(self, rows): 

ValueError: I/O operation on closed file 
+0

Python 2.7.6、unicodecsv 0.14.1でこのエラーは発生しません。 –

+0

@Robᵩ私の謝罪。私は別の問題に遭遇した後に起こったことに気づいた。私は詳細を提供するために私の質問を変更しています。 –

+2

あなたが持っているエラーを示す最短**完全**プログラムを提供してください。エラーはデータに依存するため、エラーの原因となる短いサンプルセットを含めてください。詳細は[mcve]を参照してください。 –

答えて

1

次のことを試してみてください。

import unicodecsv as csv 

with open(csv_file_name_write, "wb") as f: 
    writer = csv.writer(f, encoding="utf-8") 
    writer.writerow(["A", "B", "C"]) 

それがあなたの問題が解決しない場合は、これは私のマシンで作業しているため、残念ながら、私はあなたを助けることはできません。

+0

私のオリジナルエラーは 'UnicodeDecodeError: 'utf8'コーデックは位置3-4のバイトをデコードできません:データの予期しない終わり ' –

+1

"デコード "??この例はエンコーディングのみです。これが実際にあなたの問題の原因だと確信していますか? –

関連する問題