python解压gz_python解压压缩包

压缩包类型:.gz .tar .tgz .zip .rar

gz: 即gzip。通常仅仅能压缩一个文件。与tar结合起来就能够实现先打包,再压缩。

tar: linux系统下的打包工具。仅仅打包。不压缩

tgz:即tar.gz。先用tar打包,然后再用gz压缩得到的文件

zip: 不同于gzip。尽管使用相似的算法,能够打包压缩多个文件。只是分别压缩文件。

rar:打包压缩文件。最初用于DOS,基于window操作系统。

gz

#!/usr/bin/env python

# -*- coding: utf-8 -*-

import gzip

def un_gz(file_name):

# 获取文件的名称,去掉后缀名

f_name = file_name.replace(".gz", "")

# 开始解压

g_file = gzip.GzipFile(file_name)

#读取解压后的文件,并写入去掉后缀名的同名文件(即得到解压后的文件)

open(f_name, "wb+").write(g_file.read())

g_file.close()

tar

import tarfile

tar = tarfile.open( '*.tar.gz', mode = "r:gz") #"r:gz"表示 open for reading with gzip compression

tar.extractall(path='temp') ### 将tar.gz文件解压到temp文件夹下

tar.close()

tgz

import tarfile

tarobj = tarfile.open("my_backup_file.tgz", "r:gz")

for tarinfo in tarobj:

tarobj.extract(tarinfo.name, r"d:/temp/backup")

tarobj.close()

zip

import zipfile

'''

基本格式:zipfile.ZipFile(filename[,mode[,compression[,allowZip64]]])

mode:可选 r,w,a 代表不同的打开文件的方式;r 只读;w 重写;a 添加

compression:指出这个 zipfile 用什么压缩方法,默认是 ZIP_STORED,另一种选择是 ZIP_DEFLATED;

allowZip64:bool型变量,当设置为True时可以创建大于 2G 的 zip 文件,默认值 True;

'''

zip_file = zipfile.ZipFile(path)

zip_list = zip_file.namelist() # 得到压缩包里所有文件

for f in zip_list:

zip_file.extract(f, folder_abs) # 循环解压文件到指定目录

zip_file.close() # 关闭文件,必须有,释放内存

rar

import rarfile

import os

rar=rarfile.RarFile(filename, mode='r') # mode的值只能为'r'

# 判断同名文件夹是否存在,若不存在则创建同名文件夹

if os.path.isdir(os.path.splitext(filename)[0]):

rf_list = rf.namelist() # 得到压缩包里所有的文件

print('rar文件内容', rf_list)

else:

os.mkdir(os.path.splitext(filename)[0])

rar.extractall(os.path.splitext(filename)[0]) # 解压文件

rar.close() # 关闭文件,必须有,释放内存

windows下rar解压操作:

下载UnRAR动态库

windows下可以下载编译好的库包:

下载解压后能得到一个DLL: UnRAR.dll

安装python包unrar

pip install unrar

windows下先进入python安装目录下的Scripts: 例如“D:\Python27\Scripts”

然后同样执行: pip install unrar

参考资料:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值