📜  python tar 一个目录 - Python (1)

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

Python - 压缩目录

在Python中,可以使用tarfile模块进行文件和目录的压缩。本文将介绍如何使用tarfile模块来压缩一个目录。

tarfile模块

tarfile模块是Python标准库中用于创建tar文件的模块。使用tarfile模块可以对包括多个文件的目录进行压缩,同时保留目录结构和文件属性。

压缩一个目录

要压缩一个目录,首先需要导入tarfile模块。然后创建一个tarfile对象并使用add方法将目录添加到压缩文件中。

import tarfile

# 创建压缩文件
with tarfile.open('example.tar.gz', mode='w:gz') as archive:
    archive.add('example_directory/')

在上面的代码中,我们首先使用tarfile.open方法创建了一个tar文件对象。mode='w:gz'参数表示创建一个gzip压缩的tar文件。然后使用add方法将目录example_directory/添加到压缩文件中。

压缩一个目录(使用相对路径)

在有些情况下,需要使用相对路径来指定要压缩的目录。这在使用os.path模块或os模块时很常见。

import tarfile
import os

# 获取当前工作目录
base_dir = os.path.abspath(os.path.curdir)

# 创建压缩文件
with tarfile.open('example.tar.gz', mode='w:gz') as archive:
    # 使用相对路径添加目录
    archive.add(os.path.join(base_dir, 'example_directory'), arcname='example_directory')
压缩多个目录

如果要压缩多个目录,可以在调用add方法时传递多个目录路径。

import tarfile

# 创建压缩文件
with tarfile.open('example.tar.gz', mode='w:gz') as archive:
    archive.add('example_directory_a/')
    archive.add('example_directory_b/')
压缩目录中的文件

默认情况下,tarfile模块会将整个目录添加到压缩文件中。如果要仅仅只将目录中的特定文件添加到压缩文件中,可以通过在add方法中传递文件名来实现。

import tarfile

# 创建压缩文件
with tarfile.open('example.tar.gz', mode='w:gz') as archive:
    # 添加目录下的指定文件
    archive.add('example_directory/file1.txt')
    archive.add('example_directory/file2.txt')
结论

本文介绍了如何使用Python的tarfile模块来压缩一个目录。通过使用tarfile模块,可以将多个文件和目录压缩到一个gzip或其他格式的tar文件中,并且保留文件属性和目录结构。