使用Zipfile从各个文件夹创建单个存档

时间:2015-04-28 12:09:53

标签: python zipfile

我有一个由3个文件夹组成的目录:
----- 001
----- 002
----- 003

我想创建3个名为001.zip,002.zip和003.zip的档案。每个档案都必须由文件夹的内容组成。

我使用zipfile库,并设法存档一个文件夹:

import os, zipfile    
zf = zipfile.ZipFile('C:/zipfile4.zip', mode='w')
for dirpath,dirs,files in os.walk("C:/Test/002"):
    for f in files:
        fn = os.path.join(dirpath, f)
        zf.write(fn)

但我不知道如何使用该zipfile库连续创建多个档案。
你能帮帮我吗? 谢谢!

1 个答案:

答案 0 :(得分:1)

使用您的代码示例作为基础,这应该有效:

import os
import zipfile

dir = "C:/Test/002"

# get list of all subdirectories in the directory
subdirs = [subdir for subdir in os.listdir(dir) if os.path.isdir(os.path.join(dir, subdir))]

# create a zip archive for each subdirectory
for subdir in subdirs:
    zf_name = "C:/" + subdir + ".zip"
    zf = zipfile.ZipFile(zf_name, mode='w')
    for dirpath,dirs,files in os.walk(os.path.join(dir, subdir)):
        for f in files:
            fn = os.path.join(dirpath, f)
            zf.write(fn)