欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python解壓zip包中文亂碼解決方法

 更新時間:2020年11月27日 17:26:01   作者:zezhou222  
這篇文章主要介紹了python解壓zip包中文亂碼解決方法,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下

亂碼得原因:

由于ZipFile模塊導(dǎo)出遇到中文解碼不對,windows上會出現(xiàn),linux是否會出現(xiàn)不知道沒測試過。 

解決方式:

1. 搞個文件名引射表(不太方便,少量文件夾套用時候還可以)

2. 修改源碼解碼格式(不太方便,自己搞了一下,之后報其他錯誤)

3. 自己寫入文件,自己創(chuàng)建文件夾(推薦)

自己創(chuàng)建的寫法:

with zipfile.ZipFile(file=zip_save_path, mode='r') as zf:
      # 解壓到指定目錄,首先創(chuàng)建一個解壓目錄
      os.mkdir(unzip_dir_path)
      for old_name in zf.namelist():
        # 獲取文件大小,目的是區(qū)分文件夾還是文件,如果是空文件應(yīng)該不好用。
        file_size = zf.getinfo(old_name).file_size
        # 由于源碼遇到中文是cp437方式,所以解碼成gbk,windows即可正常
        new_name = old_name.encode('cp437').decode('gbk')
        # 拼接文件的保存路徑
        new_path = os.path.join(unzip_dir_path, new_name)
        # 判斷文件是文件夾還是文件
        if file_size > 0:
          # 是文件,通過open創(chuàng)建文件,寫入數(shù)據(jù)
          with open(file=new_path, mode='wb') as f:
            # zf.read 是讀取壓縮包里的文件內(nèi)容
            f.write(zf.read(old_name))
        else:
          # 是文件夾,就創(chuàng)建
          os.mkdir(new_path)

結(jié)果正常:

以上就是python解壓zip包中文亂碼解決方法的詳細(xì)內(nèi)容,更多關(guān)于python 解壓zip包中文亂碼的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評論