Python解压zip和rar文件

Python解压zip和rar文件,及解决中文问题

更多 0
Python  RAR  Zip

上篇所说,我要使用Python解压一些文件,一来就不懂,google到zipfile了,然后又google到rarfile了。rarfile是模仿zipfile模块写的,所以接口几乎一样,只有rar和zip的字符差别。但是zip功能是python内置模块,rar不是,不是亲妈生的有些问题,还存在严重的跨平台问题。

(所以此文有点操作系统区别,rarfile需要unrar.exe的支持,我只在win7下测试了)

1.ZipFile

这是个内置模块,所以google一下就找到了。在Python官网有很全的文档,全英文,去年认真学的英文此刻觉得很感动。在写此文时有个意外收获,它提供了zipfile.is_zipfile(filename)接口,不过我上篇的 filetype判断还是有用的,所以不会回头去改实现了。

我需要的功能的全部解压,所以用到了ZipFile.extractall([path[, members[, pwd]]])这个函数。其他函数没时间一个一个试过去,知其意和知其有这个接口就好了,下次用到再测试,免得把问题复杂化。

2.RarFile

安装一般都是 (这里有python第三方安装方法的大全

pip install rarfile

easy_install http://prdownload.berlios.de/rarfile/rarfile-2.4.tar.gz

前提是你安装了pip或easy_install,如果都没装那就只能手动安装了,方法是下载解压,然后找到setup.py

python setup.py install

还不行,你安装python了么,或者把python路径设为环境变量了么?

用法跟zip一样,文档 不一一解说了。测试时产生了如下错误

rarfile.RarExecError: Unrar not installed? (rarfile.UNRAR_TOOL='unrar')

everything 了一下unrar,在winrar的目录中找到unrar.exe,把着侥幸的心理把他拷贝到我的python脚本目录下,再执行就ok了。看来使用rarfile需要系统安装unrar并环境变量path中(命令行可以直接访问到)

3.中文问题

Python里的中文一直是我头大的问题,不过久而久知也大概知道怎么解决,但今天出现的问题又让我头大了。然后,坚持不懈的我还是把他解决了。传说这个问题也在windows系统中常见,大牛不在windows世界中混,或者大牛不在windows的中文系统中混。苦逼了我们这些被迫用windows的程序员(其实我也喜欢在MacOS和Ubuntu下折腾,但是公司的事无解了)。屁话少说,直接上问题和解决方法

UnicodeEncodeError: 'ascii' codec can't encode characters in position 44-48: ordinal not in range(128)

在程序开头加上以下代码

import sys
reload(sys)
sys.setdefaultencoding('gbk')

如果你在windows的中文系统中遇到中文会遇到莫名其妙的问题,就加上这些代码。

  • 6
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值