「ファイル名に日本語つかわないでよー」
音声ファイルを取引先が送ってきました。zipで圧縮されていたので解凍しようとしたらめちゃんこ困ったことになりました。ファイル名がことごとく文字化けしてるんです。ファイル名がわからないと何の音源がわからない。
ファイル名に日本語を使わなければこんなことにはならないと思うんです。Qiita読者諸兄なら、取引先とのやり取りには英数字のファイル名を使ってると思います。しかし世間にはそういう認識ってまだまだ足りてないのかなと。
「文字化けしてるんで圧縮しなおしてください」って頼むとまた時間がかかるし、私達には頼れる存在、Pythonがついています!
Pythonをつかって正しいファイル名で解凍してみます(Python3)
import zipfile
SRC = '解凍したいzipファイル'
DST = '解凍したファイルを置きたい場所'
with zipfile.ZipFile(SRC) as z:
for info in z.infolist():
info.filename = info.filename.encode('cp437').decode('utf-8')
z.extract(info, path=DST)
私の今回のケースの場合、文字コードcp437
を使えば正しいファイル名に変換できました。ここは先方の使っている環境によって変わってくるかもしれません
以上、ちょっとしたコツですが、お役に立てば幸いです。くれぐれも、やり取りは英数字のファイル名で