在 tempfile.TemporaryDirectory 中创建目录时出现问题

时间:2021-07-23 10:50:48

标签: python temporary-files temporary-directory

我在使用临时文件库时遇到问题。作为更大代码的一部分,我需要打开一个临时文件夹(最后需要关闭)。我会在里面转储一些文件。但是我需要组织里面的内容,所以我需要在这个临时文件夹中打开一个目录。我尝试使用 mkdir 和 makedirs,在临时文件夹被删除之前,我将所有内容压缩以检查我创建的目录是否确实存在。显然不是,最后我得到一个空的 zip 文件。 这里有什么问题,为什么没有创建目录 dir1 和 dir2?

import os
import tempfile
import zipfile

with tempfile.TemporaryDirectory() as directory:
    try:
        os.mkdir(os.path.join(directory, "dir1"))
        os.makedirs(os.path.join(directory, "dir2"))
    finally:
        # zip to check the content created
        def zipdir(path, ziph):
            # ziph is zipfile handle
            for root, dirs, files in os.walk(path):
                for file in files:
                    ziph.write(os.path.join(root, file))

        zipf = zipfile.ZipFile("final.zip", 'w', zipfile.ZIP_DEFLATED)
        zipdir(directory, zipf)
        zipf.close()

0 个答案:

没有答案