日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python zipfile 乱码_python zipfile文件名乱码问题

發布時間:2024/7/23 python 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python zipfile 乱码_python zipfile文件名乱码问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

zipfile文件名亂碼問題

接到一個解壓zip文件的任務。在幾百G的文件里面找到zip文件,并解壓到當前目錄。這個任務看似很簡單,但是全都是坑的。

被坑的第一點,文件名亂碼。搜索博客里面的教程,一般有兩種方法。1、修改源碼,把cp437編碼換成gbk。2、decode cp437 再 encode gbk。

這兩種方案都只能適應一些場景而已,因為zip的壓縮工具本來就是混亂的。

我來說說第一種方案的坑點,并非所有的zip文件都是通過flag_bits來控制是utf-8還是別的編碼的。例如,一個flag_bits標記為非utf-8的文件名,你直接修改源碼轉gbk,則很有可能會gbk can not decode error 。

第二種,方案同樣有像似的問題。一個utf-8的文件名因為flag_bits的錯誤。然后,你就無法區分是到底是 decode cp437 還是 utf-8。

所以,正確的方法是讀取flag_bits,decode cp437 或者 utf-8 還原成二進制數據。然后,再使用chardet猜測編碼,如果猜測不出來,應該指定utf-8編碼、然后再使用gbk。

是的,這個編碼還是要靠猜的。

解壓文件的另外一個坑點

我也不知道為啥,壓縮文件的路徑上,有的文件夾的尾部是一個空格。這導致,解壓后的文件夾。有內容,但是打開是看不到文件的。

我使用rar工具進行解壓。發現,工具會把尾部的空格替換成下劃線。

結果

經過這些修改,終于這幾百G的文件,掃描出來的zip,可以成功解壓。有60G大小。而且,文件名都可以還原。沒有亂碼的情況。

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的python zipfile 乱码_python zipfile文件名乱码问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。