[Python]处理压缩文件
这里讨论使用Python解压如下五种压缩文件:
.gz .tar .tgz .zip .rar
简介
gz: 即gzip,通常只能压缩一个文件。与tar结合起来就可以实现先打包,再压缩。
tar: linux系统下的打包工具,只打包,不压缩
tgz:即tar.gz。先用tar打包,然后再用gz压缩得到的文件
zip: 不同于gzip,虽然使用相似的算法,可以打包压缩多个文件,不过分别压缩文件,压缩率低于tar。
rar:打包压缩文件,最初用于DOS,基于window操作系统。压缩率比zip高,但速度慢,随机访问的速度也慢。
关于zip于rar之间的各种比较,可见:
http://www.comicer.com/stronghorse/water/software/ziprar.htm
gz
由于gz一般只压缩一个文件,所有常与其他打包工具一起工作。比如可以先用tar打包为XXX.tar,然后在压缩为XXX.tar.gz
解压gz,其实就是读出其中的单一文件,Python方法如下:
import gzip
import os
def un_gz(file_name):"""ungz zip file"""f_name = file_name.replace(".gz", "")#获取文件的名称,去掉g_file = gzip.GzipFile(file_name)#创建gzip对象open(f_name, "w+").write(g_file.read())#gzip对象用read()打开后,写入open()建立的文件中。g_file.close()#关闭gzip对象<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"> </span>
tar
XXX.tar.gz解压后得到XXX.tar,还要进一步解压出来。
*注:tgz与tar.gz是相同的格式,老版本DOS扩展名最多三个字符,故用tgz表示。
由于这里有多个文件,我们先读取所有文件名,然后解压,如下:
import tarfile
def un_tar(file_name):untar zip file"""tar = tarfile.open(file_name)names = tar.getnames()if os.path.isdir(file_name + "_files"):passelse:os.mkdir(file_name + "_files")#由于解压后是许多文件,预先建立同名文件夹for name in names:tar.extract(name, file_name + "_files/")tar.close()
*注:tgz文件与tar文件相同的解压方法。
zip
与tar类似,先读取多个文件名,然后解压,如下:
import zipfile
def un_zip(file_name):"""unzip zip file"""zip_file = zipfile.ZipFile(file_name)if os.path.isdir(file_name + "_files"):passelse:os.mkdir(file_name + "_files")for names in zip_file.namelist():zip_file.extract(names,file_name + "_files/")zip_file.close()
rar
因为rar通常为window下使用,需要额外的Python包rarfile。
可用地址: http://sourceforge.net/projects/rarfile.berlios/files/rarfile-2.4.tar.gz/download
解压到Python安装目录的/Scripts/目录下,在当前窗口打开命令行,
输入Python setup.py install
安装完成。
import rarfile
import os
def un_rar(file_name):"""unrar zip file"""rar = rarfile.RarFile(file_name)if os.path.isdir(file_name + "_files"):passelse:os.mkdir(file_name + "_files")os.chdir(file_name + "_files"):rar.extractall()rar.close()
[Python]处理压缩文件相关推荐
- python读写压缩文件使用gzip和bz2
python读写压缩文件使用gzip和bz2 #读取压缩文件 # gzip compression import gzip with gzip.open('somefile.gz', 'rt') as ...
- Python的压缩文件处理 zipfile tarfile
本文从以下两个方面, 阐述Python的压缩文件处理方式: 一. zipfile 二. tarfile 一. zipfile 虽然叫zipfile,但是除了zip之外,rar,war,jar这些压缩( ...
- python读压缩文件内容_Python读写压缩文件的方法
问题 你想读写一个gzip或bz2格式的压缩文件. 解决方案 gzip 和bz2模块可以很容易的处理这些文件. 两个模块都为 open()函数提供了另外的实现来解决这个问题. 比如,为了以文本形式读取 ...
- python gzip压缩文件
python gzip压缩文件 下面的代码实现用gzip格式压缩文件,需要引用gzip包. #! import string import gzip from optparse import Opti ...
- python读取压缩文件时乱码,zipfile解压缩包,出现中文乱码问题问题
python读取压缩文件时乱码,zipfile解压缩包,出现中文乱码问题问题 问题描述--python 使用zipfile模块 读取并且解压缩包,出现中文乱码问题 问题原因 python 使用这个模块 ...
- python读压缩文件内容_使用Python读写及压缩和解压缩文件的示例
读写文件 首先看一个例子: f = open('thefile.txt','w') #以写方式打开, try: f.write('wokao') finally: f.close() 文件的打开方式: ...
- python读取压缩文件的指定后缀的文件_python打包压缩、读取指定目录下的指定类型文件...
下面通过代码给大家介绍python打包压缩指定目录下的指定类型文件,具体代码如下所示: import os import datetime import tarfile import fnmatch ...
- python zipfile压缩文件夹
在使用python zipfile模块进行压缩文件创建的时候,发现貌似只有zipfile对象的write()方法对文件的添加,那么如何将一个文件夹压缩添加到压缩文件中呢? ①直接write() dir ...
- 使用Python操作压缩文件
我们经常使用压缩程序对文件进行压缩打包,在 Python 中也提供了相应的 zipfile 模块方便我们对 ZIP 压缩文件进行操作. 读取 ZIP 压缩文件 读取 ZIP 压缩文件必须先创建 Zip ...
最新文章
- K-d tree 算法
- 华大基因回复深交所:“14万中国人基因大数据”项目与外方机构无关
- RSS制作阅读器(利用RssToolkit for asp.net 2.0)
- python在哪里写代码比较适合-适合练习的10个Python项目,每个项目都不到500行代码...
- pat 乙级 1005 继续(3n+1)猜想(C++)
- 架构实战:(一)Redis采用主从架构的原因
- 分成互质组 (信息学奥赛一本通-T1221)
- R+Hadoop大数据方案有哪些坑?
- Yaml锚点和别名*
- linux mysql恢复数据_删库不跑路详解MySQL数据恢复
- jQuery源码06-jQuery = function(){};给JQ对象,添加一些方法和属性,extend : JQ的继承方法,jQuery.extend()...
- http 响应消息解码_响应生成所需的解码策略
- Spring Framework 官方文档学习(二)之IoC容器与bean lifecycle
- 如何在51单片机实现日程提醒(生日闹钟)
- 医学影像SCI发表攻略
- 巴别时代2017校园招聘宣讲+笔试
- 马路上“低头族”的交通隐患 ,小心埋头苦干的恶果
- java调用百度翻译_Java调用百度API实现翻译-Go语言中文社区
- 旁路电容和去耦电容基础知识
- vue动画transition
热门文章
- 软件工程7-软件测试
- Native.js 读写NFC数据
- [量子计算]日常生活中一些量子世界相关的概念
- Vue跨域访问后端接口问题解决
- 浅谈文本生成或者文本翻译解码策略
- docker删除/var/lib/docker/overlay2 后无法创建镜像,或者拉取镜像
- linux 重置bios密码忘记,Windows10专业版下重置BIOS密码的技巧
- Unity给图片添加点击事件
- oracle enq ta,【案例】Oracle等待事件event enq: KO - fast object checkpoint解决办法
- SQL数据库查询LIMIT 数据分页