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


Posted in Python onSeptember 18, 2016

前言

很多时候在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

总结

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

Python 相关文章推荐
Python的Django框架中从url中捕捉文本的方法
Jul 20 Python
Python实现优先级队列结构的方法详解
Jun 02 Python
Python常见工厂函数用法示例
Mar 21 Python
python3利用tcp实现文件夹远程传输
Jul 28 Python
python实现一个简单的udp通信的示例代码
Feb 01 Python
利用Python半自动化生成Nessus报告的方法
Mar 19 Python
详解Python连接MySQL数据库的多种方式
Apr 16 Python
Python opencv实现人眼/人脸识别以及实时打码处理
Apr 29 Python
python使用Geany编辑器配置方法
Feb 21 Python
解决Python Matplotlib绘图数据点位置错乱问题
May 16 Python
matplotlib部件之矩形选区(RectangleSelector)的实现
Feb 01 Python
python 多态 协议 鸭子类型详解
Nov 27 Python
Python自动化运维和部署项目工具Fabric使用实例
Sep 18 #Python
基于Python 的进程管理工具supervisor使用指南
Sep 18 #Python
打包发布Python模块的方法详解
Sep 18 #Python
在python的类中动态添加属性与生成对象
Sep 17 #Python
Python中字符串的处理技巧分享
Sep 17 #Python
Python中对象迭代与反迭代的技巧总结
Sep 17 #Python
发布你的Python模块详解
Sep 15 #Python
You might like
一个显示天气预报的程序
2006/10/09 PHP
PHP批量采集下载美女图片的实现代码
2013/06/03 PHP
md5 16位二进制与32位字符串相互转换示例
2013/12/30 PHP
php验证手机号码
2015/11/11 PHP
PHP开发之用微信远程遥控服务器
2018/01/25 PHP
详解PHP发送邮件知识点
2018/05/06 PHP
php+mysql开发中的经验与常识小结
2019/03/25 PHP
JavaScript 函数调用规则
2009/09/14 Javascript
javascript深入理解js闭包
2010/07/03 Javascript
完美解决IE低版本不支持call与apply的问题
2013/12/05 Javascript
JQuery fileupload插件实现文件上传功能
2016/03/18 Javascript
表单input项使用label同时引用Bootstrap库导致input点击效果区增大问题
2016/10/11 Javascript
Angular 4依赖注入学习教程之FactoryProvider配置依赖对象(五)
2017/06/04 Javascript
jquery实现图片放大点击切换
2017/06/06 jQuery
JavaScript数组_动力节点Java学院整理
2017/06/26 Javascript
基于js实现数组相邻元素上移下移
2020/05/19 Javascript
微信小程序文章详情功能完整实例
2020/06/03 Javascript
如何在selenium中使用js实现定位
2020/08/18 Javascript
Vue+Java+Base64实现条码解析的示例
2020/09/23 Javascript
Vue 解决在element中使用$notify在提示信息中换行问题
2020/11/11 Javascript
[04:09]2014DOTA2国际邀请赛Ti西雅图 历届冠军相继出局 BBC综述今日比赛
2014/07/20 DOTA
[47:22]Mineski vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python中使用logging模块代替print(logging简明指南)
2014/07/09 Python
Python实现确认字符串是否包含指定字符串的实例
2018/05/02 Python
Python使用while循环花式打印乘法表
2019/01/28 Python
python处理大日志文件
2019/07/23 Python
在python中用url_for构造URL的方法
2019/07/25 Python
实现ECharts双Y轴左右刻度线一致的例子
2020/05/16 Python
python 使用elasticsearch 实现翻页的三种方式
2020/07/31 Python
Pycharm中如何关掉python console
2020/10/27 Python
女士时装鞋:Chinese Laundry
2018/08/29 全球购物
运动会致辞稿50字
2014/02/04 职场文书
医学类个人求职信范文
2014/02/05 职场文书
中学生勤俭节约倡议书
2015/04/29 职场文书
大卫科波菲尔读书笔记
2015/06/30 职场文书
公司要求试用期员工提交“述职报告”,该怎么写?
2019/07/17 职场文书