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采集腾讯新闻实例
Jul 10 Python
python删除特定文件的方法
Jul 30 Python
Python找出list中最常出现元素的方法
Jun 14 Python
Python数据结构之翻转链表
Feb 25 Python
Python字符串处理实例详解
May 18 Python
python matlibplot绘制多条曲线图
Feb 19 Python
Python数据持久化存储实现方法分析
Dec 21 Python
深入了解如何基于Python读写Kafka
Dec 31 Python
基于Python3.6中的OpenCV实现图片色彩空间的转换
Feb 03 Python
基于python实现模拟数据结构模型
Jun 12 Python
解决python 虚拟环境删除包无法加载的问题
Jul 13 Python
Python3爬虫里关于识别微博宫格验证码的知识点详解
Jul 30 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
PHP 调试工具Debug Tools
2011/04/30 PHP
php中将网址转换为超链接的函数
2011/09/02 PHP
PHP 杂谈《重构-改善既有代码的设计》之四 简化条件表达式
2012/04/09 PHP
php四种基础算法代码实例
2013/10/29 PHP
php返回当前日期或者指定日期是周几
2015/05/21 PHP
php简单判断文本编码的方法
2015/07/30 PHP
详解WordPress开发中过滤属性以及Sql语句的函数使用
2015/12/25 PHP
php把字符串指定字符分割成数组的方法
2018/03/12 PHP
原生JS实现Ajax通过POST方式与PHP进行交互的方法示例
2018/05/12 PHP
JavaScript中变量提升 Hoisting
2012/07/03 Javascript
第一章之初识Bootstrap
2016/04/25 Javascript
关于Function中的bind()示例详解
2016/12/02 Javascript
jQuery命名空间与闭包用法示例
2017/01/12 Javascript
JS简单实现自定义右键菜单实例
2017/05/31 Javascript
js+html制作简单日历的方法
2017/06/27 Javascript
IScroll5实现下拉刷新上拉加载的功能实例
2017/08/11 Javascript
NodeJS 实现多语言的示例代码
2018/09/11 NodeJs
Vue.set()动态的新增与修改数据,触发视图更新的方法
2018/09/15 Javascript
vue-cli中使用高德地图的方法示例
2019/03/28 Javascript
vue 设置 input 为不可以编辑的实现方法
2019/09/19 Javascript
nodejs使用Sequelize框架操作数据库的实现
2020/10/21 NodeJs
nuxt 路由、过渡特效、中间件的实现代码
2020/11/06 Javascript
[03:00]2014DOTA2国际邀请赛 Titan淘汰潸然泪下Ohaiyo专访
2014/07/15 DOTA
Python 命令行参数sys.argv
2008/09/06 Python
Python基于有道实现英汉字典功能
2015/07/25 Python
Python中使用__new__实现单例模式并解析
2019/06/25 Python
如何在mac环境中用python处理protobuf
2019/12/25 Python
浅谈CSS3中的变形功能-transform功能
2017/12/27 HTML / CSS
Russell Stover巧克力官方网站:美国领先的精美巧克力制造商
2016/11/27 全球购物
阿根廷在线宠物商店:Puppis
2018/03/23 全球购物
企事业单位求职者的自我评价
2013/12/28 职场文书
运动会广播稿300字
2014/01/10 职场文书
高一家长会邀请函
2014/01/12 职场文书
小学六一主持词开场白
2015/05/28 职场文书
广告文案的撰写技巧(实用干货)
2019/08/23 职场文书
Django框架中视图的用法
2022/06/10 Python