pythonでsjisファイルutf8に変換しようとして

pythonでsjisファイル(csv)をutf8変換しようとして迷った時のメモ。

openする時に、encodingを指定すれば開けるのですが、例えばこんな感じ
fin = open('sjis_file.txt', mode='r', encoding='shift_jis')

で、エラーが出る場合は、別のコードを指定。
fin = open('sjis_file.txt', mode='r', encoding='shift_jisx0213')
とか。

ただし、これでもエラーになる場合がある。で結局、iconvでutf8に変換してからpythonで開くとうまくいった。
#!/bin/bash

iconv -c -f SJIS -t UTF-8 sjis_file.txt > utf8_file.txt

python read_file.py

みたいな感じで。nkfやdos2unixよりもiconvの方が変換できる文字が多いようで。
また、変換できないときの挙動も異常終了したりしないでの、iconvがお勧め。

これらのツールで、改行コードの変換もできるが、末尾の変換だけで、マルチラインカラム(1つのフィールドに改行コードが入ってるもの)の改行コードは変換してくれない。
なので、iconvで変換後、pythonのcsv.readerなどで読み込んでフィールド内の改行コードなどを削除。



関連記事

Comment

(編集・削除用)
管理者にだけ表示を許可

Trackback

URL
https://nosource.blog.fc2.com/tb.php/183-e73ac7db
この記事にトラックバック(FC2Blog User)

カテゴリ

Amazon

アクセスランキング

[ジャンルランキング]
コンピュータ
249位
アクセスランキングを見る>>

[サブジャンルランキング]
プログラミング
38位
アクセスランキングを見る>>

RSSリンクの表示

ブロとも申請フォーム

Copyright © nopgm