python解决linux下unzip乱码问题

来源:互联网 发布:中国网络零售规模 编辑:程序博客网 时间:2024/05/18 08:48

问题:

来自windows下zip压缩的文件。由于文件的编码问题,而unzip(UnZip 6.00)又不能修改编码,导致在linux下unzip出现如下乱码。

liushsh@linux-6kye:> unzip file.zip
Archive:  file.zip
  inflating: -�-�+�+�+�+�2014/+�-�+�+�.gdd  
  inflating: -�-�+�+�+�+�2014/��+��+.gdd  
  inflating: -�-�+�+�+�+�2014/-�-�+�+�.gdd  
  inflating: -�-�+�+�+�+�2014/-�-�+�+Ϧ���-���-+.docx  
  inflating: -�-�+�+�+�+�2014/-�-�+�+�+�+�.docx  
  inflating: -�-�+�+�+�+�2014/��θ+++�.xlsx


解决方法:

运用python解压文件。

unzip.py

#!/usr/bin/env pythonimport zipfilez=zipfile.ZipFile('file.zip')for i, f in enumerate(z.filelist):        # 这里的gdk和UTF-8,可以依据具体的情况修改        # 或者修改成两个运行参数        f.filename = f.filename.decode('gbk').encode("UTF-8")        z.extract(f)


0 0