我有使用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()
答案 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)