情况
在linux下常常会碰到从windows下复制回来的zip文件缓解压力错码的难题,今日何三就来共享下如和应用python处理linux下解压zip文件乱码的难题,撰写的python小脚本制作供大伙儿参照
构思
- 出現错码的缘故绝大多数都是由于编号不统一导致的,windows下汉语一般全是GBK编号,而linux下编号一般是UTF-8
- python中有一个zipfile缓解压力控制模块,先运用zipfile载入zip文件中的每一个文档,并将名字开展转换格式实际操作,也就是先从zip文件中恰当的载入名字,随后在开展储存
编码执行
将下边的编码储存成uzip.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# uzip.py
import os
import sys
import zipfile
print("Processing File " sys.argv[1])
file=zipfile.ZipFile(sys.argv[1],"r");
for name in file.namelist():
utf8name=name.decode('gbk')
print("Extracting " utf8name)
pathname = os.path.dirname(utf8name)
if not os.path.exists(pathname) and pathname!= "":
os.makedirs(pathname)
data = file.read(name)
if not os.path.exists(utf8name):
fo = open(utf8name, "w")
fo.write(data)
fo.close
file.close()
启用:
> uzip.py abc.zip