自動的にエンコード及びデコードを行う
codecsモジュールを使うと、自動的にエンコードやデコードを行ってくれるファイルオブジェクトを得ることができます。
新しく開くファイル
import codecs # 自動的にエンコード・デコードを行うファイルオブジェクトを生成 f1 = codecs.open("utf-8.txt", "r", "utf-8" ) f2 = codecs.open("sjis.txt", "w", "shift_jis") for line in f1: # Unicode文字列に変換して読み込む f2.write(line) # shift_jisのバイト列に変換して書き込む f1.close() f2.close()
既に開いているファイル
import sys, codecs # 標準入力のエンコーディングをEUC-JPに変更、 # データを読み込む際に、自動的にエンコードを行う sys.stdin = codecs.getreader("euc_jp")(sys.stdin) # 標準出力のエンコーディングをUTF-8に変更 # データを書き込む際に、自動的にデコードを行う sys.stdout = codecs.getwriter("utf_8")(sys.stdout) for line in sys.stdin: print line,