我正在尝试在我的脚本中创建一个函数,它将给定源目录 ( src
) 的内容压缩到一个 zip 文件 ( dst
)。例如,zip('/path/to/dir', '/path/to/file.zip')
, where/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()
这将创建一个本质上是/
. 例如,如果我 zipped /path/to/dir
,解压缩 zip 会创建一个目录,其中包含“path”,该目录中包含“to”等。
有没有人有一个不会导致这个问题的功能?
我不能强调这一点,它需要压缩目录中的文件,而不是目录本身。