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

在Python中将文件夹压缩成zip格式的方法

发布时间:2023-12-17 04:22:09

在Python中可以使用zipfile模块来将文件夹压缩成zip格式。

首先,需要导入zipfile模块:

import zipfile

然后,可以使用zipfile.ZipFile类来创建一个Zip文件对象,并指定要创建的Zip文件名和打开模式。常用的打开模式包括'w'(写入模式)和'a'(追加模式)。

zip_obj = zipfile.ZipFile('compressed_folder.zip', 'w')

接下来,可以使用zip_obj.write方法来将文件夹中的文件添加到Zip文件中。该方法接受两个参数, 个参数是要添加的文件的路径,第二个参数是添加到Zip文件中的路径。如果不指定第二个参数,则将使用文件的原始路径。

zip_obj.write('folder/file.txt', 'file.txt')

在写入完成后,需要调用zip_obj.close方法来关闭Zip文件对象。

zip_obj.close()

下面是一个完整的例子,将文件夹folder压缩成Zip文件compressed_folder.zip

import zipfile

def compress_folder(src_folder, dest_zip):
    zip_obj = zipfile.ZipFile(dest_zip, 'w')
    for root, folders, files in os.walk(src_folder):
        for file in files:
            file_path = os.path.join(root, file)
            zip_obj.write(file_path, os.path.relpath(file_path, src_folder))
    zip_obj.close()

compress_folder('folder', 'compressed_folder.zip')

在上面的例子中,compress_folder函数接收源文件夹路径和目标Zip文件路径作为参数,并使用zip_obj.write方法将文件夹中的文件添加到Zip文件中。os.walk函数用于递归遍历文件夹中的文件。

如果需要对现有的Zip文件进行追加,则可以将打开模式设置为'a',并使用zip_obj.write方法添加新的文件。

zip_obj = zipfile.ZipFile('existing_zip.zip', 'a')
zip_obj.write('new_file.txt', 'new_file.txt')
zip_obj.close()

以上就是使用Python将文件夹压缩成zip格式的方法,以及相应的使用例子。请注意,在使用zipfile模块之前,请确保已经导入了相关的模块,如os模块用于处理文件路径。