使用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)
分享到:
相关推荐
TGZ(TAR.GZ)是一种常见的文件打包和压缩格式,它将多个文件合并成一个"TAR"文件,并使用"GZIP"进行压缩,而ZIP则是另一种常见的压缩格式。这里,两个格式的结合可能是因为要同时满足不同用户的需求。 Python ...
全名:Python-2.7.17.tar.xz
这里讨论使用Python解压例如以下五种压缩文件: .gz .tar .tgz .zip .rar 简单介绍 gz: 即gzip。通常仅仅能压缩一个文件。与tar结合起来就能够实现先打包,再压缩。 tar: linux系统下的打包工具。仅仅打包。不...
此"python-2.7.16.tar.gz"文件是一个针对Python 2.7.16版本的压缩包,它采用tar和gzip两种格式进行压缩,通常在Linux或Unix-like系统中使用。在Windows环境下,你可以使用7-Zip或WinRAR等工具来解压。 Python ...
`.tar.gz`是一种常见的压缩格式,通常用于分发Python库的源代码。以下是一般的安装流程: 1. **下载资源包**:首先,你需要从互联网上下载目标库的`.tar.gz`文件,通常可以从Python Package Index (PyPI)或其他可靠...
`zipfile`模块主要用于处理.zip格式的压缩文件,而`tarfile`模块则处理.tar、.tar.gz或.tgz等归档和压缩格式。 首先,我们来看`zipfile`模块。要创建一个.zip文件,可以使用`ZipFile`类的`write()`方法,将指定文件...
`etaf-1.5.0a3.tar.gz` 是一个针对Python的特定库的压缩包,名为 `etaf`,版本为 `1.5.0a3`,格式为 `.tar.gz`,这是Unix/Linux系统中常见的压缩格式,通常用于打包和归档多个文件。 `.tar` 文件是一种打包工具,它...
在Python开发中,源码包通常以`.tar.gz`或`.zip`的形式提供,用户可以下载后进行编译安装。这个包名为"nexus",可能是用于与Nexus Repository Manager交互的一个Python库,Nexus Repository Manager是一个流行的存储...
下载完成后,使用解压缩工具(如WinRAR或7-Zip)打开并解压下载的文件。解压后,你会得到一个名为`Python-2.7.8`的目录。 **步骤三:编译与安装Python** 进入解压后的目录,使用命令行工具(如Windows的cmd或Linux...
tar是一种档案文件格式,用于在Unix和类Unix系统中组合多个文件到一个单一的归档文件中。它本身并不提供压缩功能,但常常与gzip(GNU zip)结合使用,后者是一个流行的无损数据压缩工具。因此,".tar.gz" 或 ".tgz" ...
使用`tar`命令解压下载的压缩包: ``` tar -zxvf Python-3.9.13.tgz ``` 3. **进入源代码目录**: 进入解压后的目录: ``` cd Python-3.9.13 ``` 4. **配置编译**: 在配置阶段,你可以根据需要指定安装...
Python-3.11.0.tgz源码包是Python编程语言的3.11.0版本的源代码压缩文件,通常以.tar.gz格式打包,这是一种在Unix/Linux系统中常见的归档和压缩方式。这个源码包包含所有必要的文件,使得开发者可以编译并构建自己的...
.tar.gz是一种常见的文件格式,它首先使用tar命令将多个文件和目录打包成一个单一的文件,然后使用gzip进行压缩,以减小文件大小,便于传输和存储。要解压tiddlywebplugins.bfw-0.0.1.tar.gz,你可以使用以下命令行...
1. 解压缩:`tar -zxvf Python-2.7.15.tgz` 2. 进入解压后的目录:`cd Python-2.7.15` 3. 配置编译选项(根据需要自定义):`./configure` 4. 编译源代码:`make` 5. 安装到系统:`sudo make install` 在 Linux 中...
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"。这个压缩包通常包含了源代码、文档、配置文件和其他资源,供用户下载、编译和在他们的系统上...
综上所述,"Review.zip"可能是一个包含多份评审文档的压缩包,涉及的IT知识点主要围绕ZIP文件格式,包括它的压缩算法、结构、解压方法、安全性以及在不同环境和编程语言中的应用。了解和掌握这些知识对于处理日常的...
标题 "dash-2.9.2.tar.gz" 暗示了这是一个开源软件Dash的版本2.9.2的归档文件,采用的是常见的Linux/Unix文件打包格式`.tar`和压缩格式`.gz`。Dash是一款功能强大的命令行界面工具,主要用于数据可视化和交互式分析...
对于Linux用户,可能有`.tar.gz`或`.whl`格式的源代码包和二进制包;Windows用户将找到`.msi`安装程序;而macOS用户则会看到`.pkg`安装文件。安装这些文件时,请根据系统需求和偏好选择合适的安装方式,通常遵循...