2016-12-17 8 views
0

私は区切り文字付きのcsvを持っていますが、Pythonを使って "text to columns"を適用します。 ラテン文字で動作しますが、非ラテン文字では動作しません。 12.csvでunicodecsvパッケージを使用しようとしましたが、 12.csv にエラーはありませんでしたが、出力ファイルout2.csvを開くと、疑問符が表示されます。 out2.csvPythonを使用してカラムからcsvファイルに自動テキストを変換して非ラテン文字をエンコード2.7

ここに私のコードは次のとおりです。

# -*- coding: utf-8 -*- 

import unicodecsv as csv 
with open('12.csv', 'r') as csvfile, open('out2.csv','wb') as csvfileout: 
    spamreader = csv.reader(csvfile, delimiter='#',encoding='cp1251') 
    spamwriter = csv.writer(csvfileout,delimiter=';',encoding='utf-8') 
    spamwriter.writerows(spamreader) 

あなたは私のコードで間違っているものを私を助けてくださいもらえますか?

答えて

0

出力エンコードにはutf-8-sigを使用してください。 ExcelはUTF-8でエンコードされたファイルがバイトオーダーマーク(BOM)で始まるのが好きです。それ以外の場合は、デフォルトのANSIエンコーディング(Windows-1251)が使用されます。​​のようなツールでファイルを開いた方がエンコードを検出する方が良い場合は、元の試行がUTF-8で正しく書かれていて、BOMがないことがわかります。

+0

ありがとうございますが、それでも動作しません。 – S3xCodeandRocknRoll

+0

「うまくいかない」とは?私はあなたの正確な例を使用し、その変更だけを行い、うまくいきました。実際のデータファイルで再現可能な例を提供する。あなたは写真を投稿しただけなので、私は入力ファイルで推測しなければなりませんでした。私はCP 1251として保存しました。 –

+0

申し訳ありませんが、実際には正しいです。私がメモ帳++でそれを開くと、bomエンコーディングでutf-8で保存し、出力エンコーディングでutf-8-sigを使用します。しかし、私はそれを自動的に分割したいときに毎回それをしなければならないようです...そして、私は多くのcsvファイルを持っています。 – S3xCodeandRocknRoll

関連する問題