欢迎访问宙启技术站
智能推送

使用tarfile模块进行文件压缩和解压缩的示例代码分享

发布时间:2023-12-19 02:01:21

tarfile模块是Python标准库中用于处理tar文件的模块。下面我将分享一个使用tarfile模块进行文件压缩和解压缩的示例代码,并附上详细的使用说明。

首先,我们需要导入tarfile模块:

import tarfile

压缩文件示例代码:

def create_tar_file(directory, output_filename):
    with tarfile.open(output_filename, "w:gz") as tar:
        tar.add(directory, arcname=os.path.basename(directory))

以上代码中,create_tar_file函数用于创建一个tar文件并将指定的目录压缩到tar文件中。函数的 个参数是要压缩的目录路径,第二个参数是输出的tar文件名。

代码中使用了tarfile.open函数创建了一个tar文件对象,并指定了'w:gz'模式,意味着我们要创建一个gzip压缩的tar文件。

然后,我们使用tar.add方法将目录添加到tar文件中。arcname参数指定了添加到tar文件中的路径名。

解压缩文件示例代码:

def extract_tar_file(tar_filename, output_directory):
    with tarfile.open(tar_filename) as tar:
        tar.extractall(path=output_directory)

以上代码中,extract_tar_file函数用于解压缩一个tar文件到指定目录中。函数的 个参数是要解压的tar文件名,第二个参数是输出的目录路径。

代码中使用了tarfile.open函数打开tar文件对象。然后,我们使用tar.extractall方法将tar文件中的所有文件解压到指定的目录中。

下面是一个完整的示例代码,演示如何使用tarfile模块进行文件压缩和解压缩:

import os
import tarfile

def create_tar_file(directory, output_filename):
    with tarfile.open(output_filename, "w:gz") as tar:
        tar.add(directory, arcname=os.path.basename(directory))

def extract_tar_file(tar_filename, output_directory):
    with tarfile.open(tar_filename) as tar:
        tar.extractall(path=output_directory)

# 压缩文件示例
directory_to_compress = "/path/to/directory"
output_tar_filename = "compressed.tar.gz"

create_tar_file(directory_to_compress, output_tar_filename)
print(f"{directory_to_compress} has been compressed to {output_tar_filename}")

# 解压缩文件示例
tar_filename_to_extract = "compressed.tar.gz"
output_directory = "/path/to/output/directory"

extract_tar_file(tar_filename_to_extract, output_directory)
print(f"{tar_filename_to_extract} has been extracted to {output_directory}")

以上代码中,我们首先调用create_tar_file函数压缩了一个目录到tar文件中,然后调用extract_tar_file函数解压缩tar文件到指定目录中。

请注意,以上代码中的目录路径和文件名需要根据实际情况进行修改。

希望以上示例代码能帮助到你使用tarfile模块进行文件压缩和解压缩。使用该模块可以方便地进行文件打包和解包操作,适用于项目部署、数据备份等场景。