📜  在 python 中提取 tgz 文件(1)

📅  最后修改于: 2023-12-03 15:37:27.193000             🧑  作者: Mango

在 Python 中提取 tgz 文件

TGZ 文件是一种压缩文件格式,通常用于打包和分发文件。Python 中有几种方法可以提取 TGZ 文件。

使用 tarfile 模块

Python 内置 tarfile 模块可以用来处理各种类型的压缩文件,包括 TGZ 格式。以下是一个示例:

import tarfile

filename = "example.tgz"

# 打开 TGZ 文件
tar = tarfile.open(filename, "r:gz")

# 提取 TGZ 文件中的所有文件到指定目录
tar.extractall(path="/path/to/extract")

# 关闭文件
tar.close()

上述代码打开了一个名为 example.tgz 的 TGZ 文件,并提取了其中的所有文件到指定目录 /path/to/extract。这里通过 r:gz 参数指定文件打开模式为只读打包文件并使用 gzip 压缩。extractall() 方法用于提取 TGZ 文件中的所有文件,也可以单独使用 extract(member) 方法提取某个文件。

使用 subprocess 模块

在 Python 中还可以使用 subprocess 模块来调用系统级命令解压 TGZ 文件。以下是一个示例:

import subprocess

filename = "example.tgz"

# 调用系统命令解压 TGZ 文件
subprocess.call(["tar", "-xzf", filename, "-C", "/path/to/extract"])

上述代码使用 subprocess.call() 方法调用系统命令 tar -xzf example.tgz -C /path/to/extract,其中 -xzf 参数用于解压 TGZ 文件,-C 参数用于指定提取文件的目标目录。

使用这种方法的优点是代码简单,但需要确保系统中安装了 tar 命令。

总结

本文介绍了在 Python 中提取 TGZ 文件的两种方法:使用 tarfile 模块和使用 subprocess 模块。tarfile 模块是 Python 的标准库之一,适用于所有平台和 Python 版本;subprocess 模块虽然代码较为简单,但需要确保系统中有 tar 命令。根据实际情况选择不同的方法。