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?