📅  最后修改于: 2023-12-03 15:04:09.153000             🧑  作者: Mango
在Python中,可以使用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文件中,并且保留文件属性和目录结构。