【问题标题】:With Python, how can I ensure that compression of a folder takes place within a particular folder?使用 Python,如何确保在特定文件夹中压缩文件夹?
【发布时间】:2010-09-23 08:05:44
【问题描述】:

我已经能够压缩文件夹的内容。但我希望压缩文件保留在刚刚压缩的文件夹中。例如,我在 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

【问题讨论】:

  • 你没有多大意义。听起来您只需要使用文件路径而不是文件名在正确的位置创建 zip 文件。

标签: python file zip


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多