如何在Python中获取默认文件权限?

时间:2011-08-22 16:56:09

标签: python file-permissions temporary-files

我正在编写一个Python脚本,在该脚本中,我将输出写入临时文件,然后在完成并关闭后将该文件移动到其最终目标。当脚本完成时,我希望输出文件具有与通过open(filename,"w")正常创建的权限相同的权限。实际上,该文件将具有tempfile模块用于临时文件的限制性权限集。

如果我在适当的位置创建了输出文件的“默认”文件权限,我有没有办法弄清楚它是什么?这样我可以在移动之前将它们应用到临时文件中?

2 个答案:

答案 0 :(得分:3)

为了记录,我有一个类似的问题,这是我使用的代码:

import os
from tempfile import NamedTemporaryFile

def UmaskNamedTemporaryFile(*args, **kargs):
    fdesc = NamedTemporaryFile(*args, **kargs)
    umask = os.umask(0)
    os.umask(umask)
    os.chmod(fdesc.name, 0o666 & ~umask)
    return fdesc

答案 1 :(得分:2)

有一个函数umask in the os模块。您无法获得当前的umask本身,您必须设置它并且该函数返回先前的设置。

umask继承自父进程。它描述了在创建文件或目录时要设置 not 的位。