1. 程式人生 > 其它 >Python解壓zip檔案亂碼解壓失敗報錯zipfile.BadZipFile解決方法

Python解壓zip檔案亂碼解壓失敗報錯zipfile.BadZipFile解決方法

技術標籤:Bug

報錯問題

  • zip_file = zipfile.ZipFile(zip_file),zip_file.extract()解壓裡面檔案時報錯如下
  • zipfile.BadZipFile: File name in directory '╡Ñ╥╗└┤╘┤▓╔╣║╜ß╣√╣½╕µ.doc' and h

解決方法

  • 修改zipfile.py原始碼, 搜尋cp437,分別在1327行,1510行
  • 1327行
    在這裡插入圖片描述
  • 1510行
    在這裡插入圖片描述
  • 註釋掉原始碼中filename = filename.decode('cp437')fname_str = fname.decode("cp437")
    ; 並分別改為如下程式碼
try:
    filename = filename.decode('utf-8')
except:
    filename = filename.decode('gbk')
try:
    fname_str = fname.decode('utf-8')
except:
    fname_str = fname.decode('gbk')