プログラムがファイルを開くときはいつでも、ファイルをバイナリ データとして認識します。それを上位の解釈言語、つまり 8 進数、16 進数、ASCII などに変換します。この場合、左側のペインには 16 進数が表示され、右側のペインには ansi (Windows 7 では CP1252 のはずです) が表示されます。以下の 3 つの図は、元のビューと目的の変更を示しています。3 つ目は、コードによって行われた実際の変更です。
with open(tar,'rb') as f:
data = binascii.hexlify(f.read(160))
if old in data:
print 'found!'
data = data.replace(old, new)
else:
print 'not found'
with open(tar+'new', 'wb') as fo:
binascii.unhexlify(data)
fo.write(data)
明らかに、書き込み配信方法を正しくターゲットにしていません。