Python解压zip和rar文件
来源:互联网 发布:php curl模拟表单提交 编辑:程序博客网 时间:2024/05/21 06:48
Python解压zip和rar文件,及解决中文问题
如上篇所说,我要使用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 sysreload(sys)sys.setdefaultencoding('gbk')
如果你在windows的中文系统中遇到中文会遇到莫名其妙的问题,就加上这些代码。
- Python解压zip和rar文件
- python加压解压zip,rar文件
- 解压zip rar文件
- Java解压zip和rar文件
- Java 解压zip和rar文件
- ubuntu下解压.zip和.rar文件
- Linux下解压.zip和.rar文件
- C#解压zip和rar文件
- Java解压ZIP、RAR文件
- java 解压zip、rar文件
- JAVA 解压ZIP RAR文件
- Linux下解压RAR软件下载和解压.zip和.rar文件
- Linux下解压RAR软件下载和解压.zip和.rar文件
- Linux下解压RAR软件下载和解压.zip和.rar文件
- python解压rar文件
- linux_linux指令_解压.zip和.rar文件
- Linux下解压.zip.7z和.rar文件
- Linux下如何解压.zip和.rar文件
- js 获取系统时间
- splunk破解最简单的方案
- linux dd命令详解
- Issues in Linux "man"
- 【HDU】4552 怪盗基德的挑战书 【后缀数组】
- Python解压zip和rar文件
- line控件和方法
- 剑指offer系列源码-翻转单词顺序
- ubuntu删除多余内核方法
- (转载) 如何使用ModelSim對Megafunction或LPM作仿真? (SOC) (MegaCore) (ModelSim)
- 小记
- 本体语言OWL基本知识
- 一种控制进程CPU利用率的方法
- Linux CentOS 配置IP