2016-07-01 13 views
0

私はRで一切開くことができなかった未知のエンコーディングのテキストファイルをたくさん持っています。私のファイルに 未知のエンコーディングのタブ区切りテキストファイルをPythonのR互換ファイルエンコーディングに変換する

f = codecs.open(input,"rb","utf-16") 
for line in f: 
    print repr(line)  

一行は次のようになります

pythonで印刷された:私は、UTF-16で codecsの助けを借りてのpythonでそれらを開くことができることになった

u'06/28/2016\t14:00:00\t0,000\t\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 
\x00\x00\x00\x00\t00000000\t6,000000\t0,000000\t144,600000\t12,050000 
\t8,660000\t-120,100000\t-0,040000\t-0,110000\t1,340000\t5,360000 
\t-1,140000\t-1,140000\t24,523000\t269,300000\t271,800000\t0,130000 
\t272,000000\t177,000000\t0,765000\t0,539000\t\r\n' 

」最初の "u"はこれをユニコードで表していますが、今は本当にそれが何であるか分かりません。私の目標は、テキストファイルをRで使用できるものに変換することです。適切にcsvファイルをエンコードされたが、私はunicodecsvを使用して失敗している:

in_txt = unicodecsv.reader(f, delimiter = '\t', encoding = 'utf-8') 
out_csv = unicodecsv.writer(open(output), 'wb', encoding = 'utf-8') 

out_csv.writerows(in_txt) 

誰も私のアプローチにおける主要な間違いが何であるかを教えてもらえますか?

答えて

0

guess_encoding(y)を読者パッケージからRに試すことができます。それは証明100%の弾丸ではありませんが、それは、過去に私のために働いており、少なくともあなたは正しい方向に指摘を受ける必要があります。

guess_encoding(y) 
#>  encoding confidence 
#> 1 ISO-8859-2  0.4 
#> 2 ISO-8859-1  0.3 

guess_enconding()

を試行し、読み取り中にファイル read_tsv()を使用して試してみて、

希望します。

+0

「guess_encoding」が助けてくれてありがとう!完全性のために:それは私がPythonで削除したヌルバイト(\ x00)でいっぱいのutf-16-leファイルでした。これとutf-8への変換の後、すべてRでうまくいった! – lueromat

+0

うれしかった! – Altons

関連する問題