Python 哪些因素会改变文件的权限?

Python 哪些因素会改变文件的权限?,python,file,Python,File,我正在使用makedirs函数创建目录: makedirs(self.output_dir, exist_ok=True) temp_dir = tempfile.TemporaryDirectory() 然后我从这个新目录中的临时目录(temp\u dir)复制一些文件 最后,根据Python文档,我希望output\u dir的权限是rwxrwx os.makedirs(路径[,模式]) 递归目录创建函数。类似于mkdir(),但使所有 需要包含叶目录的中间级目录。 如果叶目录已存在或存

我正在使用
makedirs
函数创建目录:

makedirs(self.output_dir, exist_ok=True)
temp_dir = tempfile.TemporaryDirectory()
然后我从这个新目录中的临时目录(
temp\u dir
)复制一些文件

最后,根据Python文档,我希望
output\u dir
的权限是
rwxrwx

os.makedirs(路径[,模式])

递归目录创建函数。类似于mkdir(),但使所有 需要包含叶目录的中间级目录。 如果叶目录已存在或存在,则引发错误异常 无法创建。默认模式为0777(八进制)

但是,
output\u dir
的权限原来是
rwx-----
。我不理解这个结果,因为我没有对代码中任何地方的
output\u dir
权限进行任何操作。例如,我没有使用
os.chmod

假设我以root用户身份运行Python脚本,有哪些因素会改变目录的权限

编辑

我注意到临时目录
temp_dir
具有相同的意外权限(
rwxrwxrwx
)。我使用以下函数创建它:

makedirs(self.output_dir, exist_ok=True)
temp_dir = tempfile.TemporaryDirectory()

这是预期的行为吗?我找不到关于这个主题的任何内容。

如果在运行python之前已经有一个umask,那么目录创建将尊重umask

例如

然后


如果在运行python之前已经有一个umask,那么目录创建将尊重umask

例如

然后


我的umask设置为
022
,因此我错了,我应该期望
0755
作为权限,而不是
0777
。然而,我最终得到的许可也不是
0755
。所以我不认为这是答案。你需要发布你的整个程序,或同等的整个测试程序,以获得最佳帮助。你最初的问题是“什么因素”,这是一个开放性问题。我给了你这些因素中的一个。如果你现在将问题编辑得更加封闭,你应该更好地重新措辞。我的umask设置为
022
,所以我错了,我应该期望
0755
作为权限,而不是
0777
。然而,我最终得到的许可也不是
0755
。所以我不认为这是答案。你需要发布你的整个程序,或同等的整个测试程序,以获得最佳帮助。你最初的问题是“什么因素”,这是一个开放性问题。我给了你这些因素中的一个。如果你现在将问题编辑得更加封闭,你应该更好地重新措辞。也就是说,为什么我的程序会执行我没有预料到的X?