我正在尝试在我的脚本中创建一个函数,将给定源目录(
src
)的内容压缩到一个zip文件(dst
)中。例如,zip('/path/to/dir', '/path/to/file.zip')
,其中/path/to/dir
是一个目录,/path/to/file.zip
尚不存在。我不想压缩目录本身,在我的情况下这很重要。我想压缩目录中的文件(和子目录)。这是我的尝试:def zip(src, dst):
zf = zipfile.ZipFile("%s.zip" % (dst), "w")
for dirname, subdirs, files in os.walk(src):
zf.write(dirname)
for filename in files:
zf.write(os.path.join(dirname, filename))
zf.close()
这将创建一个基本上是/
的压缩包。例如,如果我压缩了/path/to/dir
,解压缩该压缩包将创建一个带有“path”的目录,该目录中包含“to”,以此类推。
有没有不会导致这个问题的函数?
我强调一遍,它需要压缩目录中的文件,而不是目录本身。