Python 2.6.6的zip创建问题

时间:2018-01-05 11:10:10

标签: python python-2.6

我有使用python 2.6.6创建test.zip的代码,如下所示,并创建了一个zip。

但是在test.zip中我可以看到另外一个test.zip,大小为0/1 MB。我不确定如何解决或缺少什么。

def createZip(path, ziph):
    # ziph is zipfile handle
    for folder, subfolders, files in os.walk(path):
        for file in files:
            ziph.write(os.path.join(folder, file), os.path.relpath(os.path.join(folder,file),path), compress_type = zipfile.ZIP_DEFLATED)


zipf = zipfile.ZipFile('/home/stbUpgrade/tmp/downLoad/test.zip', 'w')
createZip('/home/stbUpgrade/tmp/downLoad/', zipf)
zipf.close()

1 个答案:

答案 0 :(得分:3)

将文件夹压缩到一个文件中,该文件是该文件夹的一部分。 zipfile.ZipFile()会创建一个空的zip文件,因此您会在test.zip中获得一个空的zip文件。

您应将test.zip放入压缩文件夹之外的文件夹(例如tmp文件夹)。

顺便说一句:你应该使用with来解决错误:

with zipfile.ZipFile('/home/stbUpgrade/tmp/test.zip', 'w') as zipf:
    createZip('/home/stbUpgrade/tmp/downLoad/', zipf)