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 数据处理库 pandas进阶教程
Apr 21 Python
使用python 3实现发送邮件功能
Jun 15 Python
Python从Excel中读取日期一列的方法
Nov 28 Python
详解python读取image
Apr 03 Python
python实现比较类的两个instance(对象)是否相等的方法分析
Jun 26 Python
Python中的 is 和 == 以及字符串驻留机制详解
Jun 28 Python
Python3网络爬虫开发实战之极验滑动验证码的识别
Aug 02 Python
关于Python 常用获取元素 Driver 总结
Nov 24 Python
Django实现whoosh搜索引擎使用jieba分词
Apr 08 Python
浅谈keras中的keras.utils.to_categorical用法
Jul 02 Python
Python系统公网私网流量监控实现流程
Nov 23 Python
全网最细 Python 格式化输出用法讲解(推荐)
Jan 18 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实现将几张照片拼接到一起的合成图片功能【便于整体打印输出】
2017/11/14 PHP
PHP实现的最大正向匹配算法示例
2017/12/19 PHP
使用js实现雪花飘落效果
2013/08/26 Javascript
Jquery ajax执行顺序 返回自定义错误信息(实例讲解)
2013/11/06 Javascript
使用js判断数组中是否包含某一元素(类似于php中的in_array())
2013/12/12 Javascript
javascript中取前n天日期的两种方法分享
2014/01/26 Javascript
浅析jquery的js图表组件highcharts
2014/03/06 Javascript
jquery实现的导航固定效果
2014/04/28 Javascript
node.js中的console.time方法使用说明
2014/12/09 Javascript
JavaScript实现控制打开文件另存为对话框的方法
2015/04/17 Javascript
jQuery实现新消息在网页标题闪烁提示
2015/06/23 Javascript
详解jQuery中的deferred对象的使用(一)
2016/05/27 Javascript
BootStrap 动态添加验证项和取消验证项的实现方法
2016/09/28 Javascript
vue绑定class与行间样式style详解
2017/08/16 Javascript
慕课网题目之js实现抽奖系统功能
2017/09/19 Javascript
Element-UI踩坑之Pagination组件的使用
2018/10/29 Javascript
前端Vue项目详解--初始化及导航栏
2019/06/24 Javascript
在Vue环境下利用worker运行interval计时器的步骤
2019/08/01 Javascript
微信小程序修改数组长度的问题的解决
2019/12/17 Javascript
vue 使用饿了么UI仿写teambition的筛选功能
2021/03/01 Vue.js
Python高效编程技巧
2013/01/07 Python
python抓取并保存html页面时乱码问题的解决方法
2016/07/01 Python
使用tensorflow实现线性回归
2018/09/08 Python
Pycharm取消py脚本中SQL识别的方法
2018/11/29 Python
Python面向对象实现一个对象调用另一个对象操作示例
2019/04/08 Python
python selenium 查找隐藏元素 自动播放视频功能
2019/07/24 Python
python实现多进程通信实例分析
2019/09/01 Python
python PIL/cv2/base64相互转换实例
2020/01/09 Python
python中Array和DataFrame相互转换的实例讲解
2021/02/03 Python
html5通过postMessage进行跨域通信的方法
2017/12/04 HTML / CSS
HTML5 常见面试题之PC端和移动端区别介绍
2018/01/22 HTML / CSS
英国派对礼服和连衣裙购物网站:TFNC London
2018/07/07 全球购物
中国电子产品批发商/跨境电商/外贸网:Sunsky-online
2020/04/20 全球购物
机械专业应届生求职信
2013/12/12 职场文书
二年级班级文化建设方案
2014/05/10 职场文书
国庆放假通知怎么写
2015/07/30 职场文书