python2.x系は、strオブジェクトとunicodeオブジェクトが別々なのでややこしい。 いろいろ調べているうちにこんな感じになった。 python3.x系はテキストはunicode処理されるので、もっと簡単らしい。 MacOS X 10.6.8 Python 2.6.1 # coding: UTF-8 import codecs import string import re f_in = codecs.open('test.txt', 'r', 'utf-8') f_out = codecs.open('test_out.txt', 'w', 'utf-8') lines = f_in.readlines() #読み込み lines2 = [] for line in lines: line = string.replace(line,u'テキスト',u'text') #テキスト