python中对rar,zip以及tgz压缩包的解压

最近公司需要做一个解析日志文件message的工具,所以就开始学习python。首先遇到的问题便是对压缩包的解压及文件的寻找(注:本文纯属个人笔记,不喜勿喷。本人也是小白一枚,有志同道合的小伙伴可以一起学习。)


第一部分先上几种压缩包的解压方法:

上压缩包方法之前先来点python对文件夹路径操作的基础:

#os.path的几种用法

#filename为绝对路径(例如:D:\Example\Demo.zip)

os.path.split(filename)[0]      #文件所在的文件夹路径     即:D:\Example\

os.path.splitext(filename)[0]  #无扩展名的绝对路径       即:D:\Example\Demo

os.path.splitext(filename)[1]   #文件扩展名                    即: zip

os.path.basename(os.path.splitext(filename)[0]) #文件名   即:Demo


以上便是在解压缩文件时常用到的几种path方法



#解压tgz压缩文件

def un_tgz(filename):

        tar=tarfile.open(filename)

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

        if os.path.isdir(os.path.splitext(filename)[0]):
                pass
        else:
                os.mkdir(os.path.splitext(filename)[0])
        tar.extractall(os.path.splitext(filename)[0])

        tar.close()


#解压rar压缩包

def un_rar(filename):

        rar=rarfile.RarFile(filename)

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

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

        rar.extractall(os.path.splitext(filename)[0])


#解压缩zip压缩包

def un_zip(filename):

        zip_file=zipfile.ZipFile(filename)

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

        if os.path.isdir(os.path.splitext(filename)[0]):
                pass
        else:
                os.mkdir(os.path.splitext(filename)[0])
        for names in zip_file.namelist():
                zip_file.extract(names,os.path.splitext(filename)[0])

        zip_file.close()




注:需要在python脚本前引入几个包:

import os
import tarfile
from unrar import rarfile

import zipfile


你可能感兴趣的:(python,解压缩)