我正在编写一个Python脚本,在该脚本中,我将输出写入临时文件,然后在完成并关闭后将该文件移动到其最终目标。当脚本完成时,我希望输出文件具有与通过open(filename,"w")
正常创建的权限相同的权限。实际上,该文件将具有tempfile模块用于临时文件的限制性权限集。
如果我在适当的位置创建了输出文件的“默认”文件权限,我有没有办法弄清楚它是什么?这样我可以在移动之前将它们应用到临时文件中?
答案 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 的位。