从目录创建一个zip文件,但不是他的完整路径

时间:2013-07-20 20:45:09

标签: python

我尝试使用代码belllow创建一个包含文件夹(某些目录和文件)内容的zip文件:

import zip,os

path = "c:\\tester\\folderToZip"
zip = zipfile.ZipFile("zippedFolder.zip", "w")
for root, dirs, files in os.walk(path):
    for file in files:
        zip.write(os.path.join(root, file))
zip.close()

但是在代码运行之后,当我检查zip文件时,zip文件,而不是文件夹“folderToZip”的内容(例如:f1,f2,f2,a.txt,b.txt,c.txt )它有可变路径的完整路径。

所以,问题是,如何基于文件夹内容创建zip文件,而不是他的完整路径?

1 个答案:

答案 0 :(得分:2)

write接受第二个可选参数arcname,该参数在指定时将提供存储文件的名称。用它来指定你想要的名字。

如果您只想要文件名:

import zip,os

path = "c:\\tester\\folderToZip"
zip = zipfile.ZipFile("zippedFolder.zip", "w")
for root, dirs, files in os.walk(path):
    for file in files:
        filename = os.path.join(root, file)
        zip.write(filename, filename)
zip.close()