python解决Fedora解压zip时中文乱码的方法

yipeiwu_com5年前Python基础

前言

很多时候在windows下压缩文件没问题,但是到了Linux下,出现乱码,很常见。以前在Ubuntu下,用`unzip -O GBK filename.zip` 就可以搞定。 换了Fedora后,暂时没发现乱码的压缩文件。晚上下载一本书的光盘,又碰到了乱码。尝试之前的方法没成功。看了下unzip的help,没-O那个参数了== 刚好找到一个用python解决的办法,分享下。

新建一个`.py`后缀的文件,直接复制粘贴代码:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
 
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()

执行解压zip文件,可爱的中文就出来了。

python 文件名.py 需要解压的文件名.zip

总结

好了,这个问题就这么简单的解决了,大家都学会了吗?希望这篇文章对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

相关文章

Java与Python两大幸存者谁更胜一筹呢

Java与Python两大幸存者谁更胜一筹呢

在学习编程语言上,相信很多人都纠结过学哪种语言更好?其实,在选择是更多的时候我们更多是需要看自己更适合。本篇文章,千锋武汉小编与大家共同讨论的编程语言,或许更多的是限于python和Ja...

python中的句柄操作的方法示例

python中的句柄操作的方法示例

通过窗口标题获取句柄 import win32gui hld = win32gui.FindWindow(None,u"Adobe Acrobat") #返回窗口标题为Adobe...

python http接口自动化脚本详解

python http接口自动化脚本详解

今天给大家分享一个简单的python脚本,使用python进行http的接口测试,脚本很简单,逻辑是:读取excel写好的测试用例,然后根据excel中的用例内容进行调用,判断预期结果中...

Python datetime时间格式化去掉前导0

Python时间格式化的时候,去掉前导0的: dt = datetime.now() print dt.strftime('%-H') #结果是: '4' 在format s...

Python:Numpy 求平均向量的实例

如下所示: >>> import numpy as np >>> a = np.array([[1, 2, 3], [3, 1, 2]]) >...