1

我正在尝试使用以下代码创建一个包含文件夹内容(一些目录和文件)的 zipfile:

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)的内容变量路径的完整路径。

所以,问题是,我怎样才能创建一个基于文件夹内容的压缩文件,而不是他的完整路径?

4

1 回答 1

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()
于 2013-07-20T20:53:05.523 回答