【发布时间】:2013-01-12 04:21:48
【问题描述】:
我试图在我的脚本中创建一个函数,它将给定源目录 (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()
这会创建一个本质上是/ 的zip。例如,如果我压缩了/path/to/dir,解压缩 zip 会创建一个目录,其中包含“path”,该目录中包含“to”,等等。
有没有人不会导致这个问题的功能?
我怎么强调都不过分,它需要压缩目录中的文件,而不是目录本身。
【问题讨论】: