Python在临时目录中创建一个嵌套目录

时间:2019-02-04 05:43:44

标签: python python-3.x temporary-files

我正在使用Python(3.7)开发一个项目,需要在临时目录中创建一个子目录,我的临时目录创建为:

tempdir = tempfile.mkdtemp()
saved_unmask = os.umask(0o077)
temp_dir = os.path.join(tempdir)

然后,我尝试在此temp_dir中创建目录,如下所示:

helm_chart = temp_dir + "/helmChart"
subprocess2.call(['helm', 'create', helm_chart])

helm creates path/sub_path总是在path内创建一个目录,在我的情况下,该目录为temp_dir,上面的command在我传递另一个目录路径时正在创建目录,但不是在temp_dir中创建目录。

谢谢!

3 个答案:

答案 0 :(得分:0)

以下可能有效:

tolist

答案 1 :(得分:0)

您有saved_unmask = os.umask(0o077),您的脚本是否在您的用户下运行?可能它无权写入临时目录

答案 2 :(得分:0)

这可以通过以下操作解决:

import os    
import tempdir

top_level = tempdir.TemporaryDirectory()
nested = tempdir.TemporaryDirectory(dir=top_level.name)

print(nested.name)

这将输出/tmp/{top_level_temp_dir}/{nested_temp_dir}

键是dir关键字参数。这告诉TemporaryDirectory使用传入的dir作为新TemporaryDirectory的基础。