Edited at

Pythonでのメモ帳で編集したファイルの取り扱い方法

すでに作ってある設定ファイルをWindowsのメモ帳で編集したら、その後ファイルが開けなくなりました。破損したかと思ったのですが、何回やっても同じでした...。


理由

utf-8にはBOM(Byte Order Mark)有りと無しの2種類があるようです。

Windows 10 では May2019Update(1903)でメモ帳のデフォルトがUTF-8 BOM無しになりましたが、これ以前のバージョンではBOM有りで保存され変更できません。

(動作確認のためにたまに使う環境だったのでUpdateしていない環境でした)


対応方法

エンコード「utf-8-sig」を使うと良いようです。


ファイルを開く

f = open(path,'r', encoding='utf-8-sig')



ConfigParserを使う

config = configparser.ConfigParser()

config.read(conf,"utf-8-sig")

utf-8-sigはBOM有りも無しも両方きちんとハンドリングできるようですので、Windowsでファイル編集を考慮する必要がある場合は、utf-8-sigを使うと良いでしょう。


参考


むにゃむにゃ

普段Mac使いなのであまり気にしていなかったので、びっくりしました。