やりたいこと
Windows環境でpython のzipfile ライブラリを使ったときに文字化けするのをなんとかしたい
そうは言っても相手側が勝手に送るzip なんでこっちで対策する必要がある場合
全部utf-8 で済ませられる人には関係ない話
原因
zipfile ライブラリがcp432 を使ってくるので、cp932 を使うようにzipfile ライブラリを書き換える
やり方
- zipfile ライブラリを探せ
path ってうってpython.exe ある場所わかるから、↓のフォルダ開いたらLib フォルダ見つけられると思う
path C:\Users\[ユーザ名]\AppData\Local\Programs\Python\Python38\
Lib フォルダ内の zipfile.py をコピペしてzipfileJPN.py にする
zipfileJPN.py をエディタで開いて cp437 を cp932 で置換
保存
import zipfileJPN exist_dir = '[展開したいフォルダ]' #ZIP展開する(展開後元ZIPは削除する) with zipfileJPN.ZipFile('sample.zip') as existing_zip: existing_zip.extractall(exist_dir) os.remove('sample.zip')