1

我已经能够压缩我的文件夹的内容。但我希望压缩文件保留在刚刚压缩的文件夹中。例如,我在 C: 驱动器中压缩了一个名为 test 的文件夹。但我希望我的“test.zip”文件包含在 C:\test 中。我怎样才能做到这一点?提前致谢。

用代码示例澄清问题:

有人好心地指出我的问题令人困惑,但对于 python 新手来说,很多事情都令人困惑:) - 如果这个问题太基本或答案很明显,我提前道歉。我不知道如何确保生成的 zip 文件位于已压缩的文件夹中。换句话说,我希望压缩过程发生在“basedir”中。这样用户就不会浪费时间在 C 驱动器的某个地方搜索它。


def zip_folder(basedir, zip_file): z = zipfile.ZipFile(zip_file, 'w', zipfile.ZIP_DEFLATED) for dirpath, dirnames, filenames in os.walk(basedir): print "zipping files:" for fn in filenames: print fn absfn = os.path.join(dirpath, fn) z.write(absfn) z.close

4

1 回答 1

2

无论您作为 zip_file 传递给函数的任何内容都将是 ZipFile 对象将写入的文件。因此,如果您将完整路径传递给它,那么它将被放在那里。如果您只传递一个文件名,那么它将被写入当前工作路径下的该文件名。听起来您只需要确保 zip_file 是绝对路径。

于 2008-11-20T22:23:49.000 回答