#はじめに
備忘録のために書くので、余計なことは書きません。Pythonでテキストファイルにある文字を別のテキストファイルに移す処理を書いていたら
'shift_jis' codec can't encode character '\u6c2e'
というエラーが返されました。どうやら文字のエンコードのエラーらしいです(勉強不足です)
特定の文字だけをreplaceして消す方法もあるようなのですが、種類が多すぎて面倒です。
#解決法
対象のPythonコードの初めにこれを記述してください。
import codecs
codecs.register_error('none', lambda e: ('?hoge?', e.end))
そして、ファイルを開く処理のopen関数を以下の様に変更してください。
f = open('file.txt', 'w', encoding='cp932', errors='none')
そうすれば、エンコードできない文字だけ?hoge?と置き換わります。消したい場合は'?hoge?'を''にすればOKです。
#参考サイト
まじで助かりました。ベストアンサーのkatsukoさん、ありがとうございます。
・(python3でshift_jisのテキストファイル保存でUnicodeEncodeError)[https://teratail.com/questions/38949]