`
lykops
  • 浏览: 86158 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

使用Python3解压gz、tar、tgz、zip、rar五种格式的压缩文件例子

 
阅读更多

使用Python3解压如下五种压缩文件:gz、tar、tgz、zip、rar

简介

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

tar: linux系统下的打包工具,只打包,不压缩

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

zip: 不同于gzip,虽然使用相似的算法,可以打包压缩多个文件,不过分别压缩文件,压缩率低于tar。

rar:打包压缩文件,最初用于DOS,基于window操作系统。压缩率比zip高,但速度慢,随机访问的速度也慢。

例子

import gzip
import os
import tarfile , zipfile, rarfile

from library.utils.file import get_filetype
from library.utils.path import make_dir
from library.utils.type_conv import random_str

def uncompress(src_file, dest_dir):
    result = get_filetype(src_file)
    if not result[0] :
        return (False, result[1], '')
    filefmt = result[1]

    result = make_dir(dest_dir)
    if not result :
        return (False, '创建解压目录失败', filefmt)

    if filefmt in ('tgz', 'tar') :
        try :
            tar = tarfile.open(src_file)  
            names = tar.getnames()   
            for name in names:  
                tar.extract(name, dest_dir)  
            tar.close()
        except Exception as e :
            return (False, e, filefmt)
    elif filefmt == 'zip':
        try :
            zip_file = zipfile.ZipFile(src_file)  
            for names in zip_file.namelist():  
                zip_file.extract(names, dest_dir)  
            zip_file.close()  
        except Exception as e :
            return (False, e, filefmt)
    elif filefmt == 'rar' :
        try :
            rar = rarfile.RarFile(src_file)  
            os.chdir(dest_dir)
            rar.extractall()  
            rar.close()  
        except Exception as e :
            return (False, e, filefmt)
    elif filefmt == 'gz' :
        try :

            f_name = dest_dir + '/' + os.path.basename(src_file)
            # 获取文件的名称,去掉  
            g_file = gzip.GzipFile(src_file)  
            # 创建gzip对象  
            open(f_name, "w+").write(g_file.read())  
            # gzip对象用read()打开后,写入open()建立的文件中。  
            g_file.close()  
            # 关闭gzip对象  

            result = get_filetype(src_file)
            if not result[0] :
                new_filefmt = '未知'
            else :
                new_filefmt = result[1]
            return (True, '解压后的文件格式为:' + new_filefmt, filefmt)
        except Exception as e :
            return (False, e, filefmt)
    else :
        return (False, '文件格式不支持或者不是压缩文件', filefmt)

    return (True, '', filefmt)
分享到:
评论

相关推荐

    Python-3.7.1.tgz.zip,免费

    TGZ(TAR.GZ)是一种常见的文件打包和压缩格式,它将多个文件合并成一个"TAR"文件,并使用"GZIP"进行压缩,而ZIP则是另一种常见的压缩格式。这里,两个格式的结合可能是因为要同时满足不同用户的需求。 Python ...

    Python官方2.7.17版本tar.xz压缩包

    全名:Python-2.7.17.tar.xz

    详解python解压压缩包的五种方法

    这里讨论使用Python解压例如以下五种压缩文件: .gz .tar .tgz .zip .rar 简单介绍 gz: 即gzip。通常仅仅能压缩一个文件。与tar结合起来就能够实现先打包,再压缩。 tar: linux系统下的打包工具。仅仅打包。不...

    python-2.7.16.tar.gz

    此"python-2.7.16.tar.gz"文件是一个针对Python 2.7.16版本的压缩包,它采用tar和gzip两种格式进行压缩,通常在Linux或Unix-like系统中使用。在Windows环境下,你可以使用7-Zip或WinRAR等工具来解压。 Python ...

    Python利用pip安装tar.gz格式的离线资源包

    `.tar.gz`是一种常见的压缩格式,通常用于分发Python库的源代码。以下是一般的安装流程: 1. **下载资源包**:首先,你需要从互联网上下载目标库的`.tar.gz`文件,通常可以从Python Package Index (PyPI)或其他可靠...

    计算机二级python题库-07-压缩和解压缩命令.ev4.rar

    `zipfile`模块主要用于处理.zip格式的压缩文件,而`tarfile`模块则处理.tar、.tar.gz或.tgz等归档和压缩格式。 首先,我们来看`zipfile`模块。要创建一个.zip文件,可以使用`ZipFile`类的`write()`方法,将指定文件...

    Python库 | etaf-1.5.0a3.tar.gz

    `etaf-1.5.0a3.tar.gz` 是一个针对Python的特定库的压缩包,名为 `etaf`,版本为 `1.5.0a3`,格式为 `.tar.gz`,这是Unix/Linux系统中常见的压缩格式,通常用于打包和归档多个文件。 `.tar` 文件是一种打包工具,它...

    PyPI 官网下载 | python-nexus-2.4.0.tar.gz

    在Python开发中,源码包通常以`.tar.gz`或`.zip`的形式提供,用户可以下载后进行编译安装。这个包名为"nexus",可能是用于与Nexus Repository Manager交互的一个Python库,Nexus Repository Manager是一个流行的存储...

    python2.7.8安装pip.zip

    下载完成后,使用解压缩工具(如WinRAR或7-Zip)打开并解压下载的文件。解压后,你会得到一个名为`Python-2.7.8`的目录。 **步骤三:编译与安装Python** 进入解压后的目录,使用命令行工具(如Windows的cmd或Linux...

    Python库 | bananadm-1.10.0.tar.gz

    tar是一种档案文件格式,用于在Unix和类Unix系统中组合多个文件到一个单一的归档文件中。它本身并不提供压缩功能,但常常与gzip(GNU zip)结合使用,后者是一个流行的无损数据压缩工具。因此,".tar.gz" 或 ".tgz" ...

    Python-3.9.13

    使用`tar`命令解压下载的压缩包: ``` tar -zxvf Python-3.9.13.tgz ``` 3. **进入源代码目录**: 进入解压后的目录: ``` cd Python-3.9.13 ``` 4. **配置编译**: 在配置阶段,你可以根据需要指定安装...

    Python-3.11.0.tgz源码包

    Python-3.11.0.tgz源码包是Python编程语言的3.11.0版本的源代码压缩文件,通常以.tar.gz格式打包,这是一种在Unix/Linux系统中常见的归档和压缩方式。这个源码包包含所有必要的文件,使得开发者可以编译并构建自己的...

    Python库 | tiddlywebplugins.bfw-0.0.1.tar.gz

    .tar.gz是一种常见的文件格式,它首先使用tar命令将多个文件和目录打包成一个单一的文件,然后使用gzip进行压缩,以减小文件大小,便于传输和存储。要解压tiddlywebplugins.bfw-0.0.1.tar.gz,你可以使用以下命令行...

    python-2.7.15.zip

    1. 解压缩:`tar -zxvf Python-2.7.15.tgz` 2. 进入解压后的目录:`cd Python-2.7.15` 3. 配置编译选项(根据需要自定义):`./configure` 4. 编译源代码:`make` 5. 安装到系统:`sudo make install` 在 Linux 中...

    python3、pip3、flask库

    2. 解压下载的文件,通常使用`tar -zxvf pip-source.tar.gz`。 3. 进入解压后的目录,运行`python3 setup.py install`来安装pip3。 Flask库是Python3的一个轻量级Web服务框架,适合构建小型和中型的Web应用。为了在...

    dash-0.28.1.tar.gz

    标题 "dash-0.28.1.tar.gz" 指的是一个开源软件项目 Dash 的特定版本,0.28.1,被打包成一种常见的压缩格式 ".tar.gz"。这个压缩包通常包含了源代码、文档、配置文件和其他资源,供用户下载、编译和在他们的系统上...

    Review.zip

    综上所述,"Review.zip"可能是一个包含多份评审文档的压缩包,涉及的IT知识点主要围绕ZIP文件格式,包括它的压缩算法、结构、解压方法、安全性以及在不同环境和编程语言中的应用。了解和掌握这些知识对于处理日常的...

    dash-2.9.2.tar.gz

    标题 "dash-2.9.2.tar.gz" 暗示了这是一个开源软件Dash的版本2.9.2的归档文件,采用的是常见的Linux/Unix文件打包格式`.tar`和压缩格式`.gz`。Dash是一款功能强大的命令行界面工具,主要用于数据可视化和交互式分析...

    python3.11最新版本下载,内含linux/windwos/macos安装包

    对于Linux用户,可能有`.tar.gz`或`.whl`格式的源代码包和二进制包;Windows用户将找到`.msi`安装程序;而macOS用户则会看到`.pkg`安装文件。安装这些文件时,请根据系统需求和偏好选择合适的安装方式,通常遵循...

Global site tag (gtag.js) - Google Analytics