我正在使用makedirs
函数创建目录:
makedirs(self.output_dir, exist_ok=True)
然后我从一个临时目录(temp_dir
)中复制一些文件。
最后,根据Python文档,我希望output_dir
的权限为rwxrwxrwx
。
os。 makedirs (路径[,模式])
递归目录创建功能。像mkdir(),但所有 包含叶子目录所需的中级目录。 如果leaf目录已存在,则引发错误异常 无法创建。默认模式为0777(八进制)。
但是,output_dir
的许可证原来是rwx------
。我不理解这个结果,因为我没有在代码中的任何地方对output_dir
的许可进行任何操作。我不是以os.chmod
为例。
假设我以root身份运行我的Python脚本,哪些因素可能会改变目录的权限?
修改
我注意到临时目录temp_dir
具有相同的意外权限(rwxrwxrwx
)。我使用以下函数创建它:
temp_dir = tempfile.TemporaryDirectory()
这是预期的行为吗?我在这个问题上找不到任何东西。
答案 0 :(得分:2)
如果在运行python之前已经有了umask,那么目录创建将遵循umask。
E.g
umask -S u=rwx,g=,o=
然后
import os
os.makedirs(...