gpt4 book ai didi

python - 如果重命名临时文件,如何保留默认 umask

转载 作者:太空宇宙 更新时间:2023-11-04 06:21:01 32 4
gpt4 key购买 nike

在 Django 应用程序中,我创建了一个临时文件。此临时文件是使用“0700”权限创建的。但是,我需要在不保留临时文件(0700)权限的情况下重命名该临时文件,但希望该文件获得用户(umask)的权限。我不想更改文件的权限。

这可能吗?

示例代码:

import tempfile, os
content = "hello"
temp_fd, filename = tempfile.mkstemp(suffix=".tmp", prefix="test1", dir="/tmp")
with os.fdopen(temp_fd, "wb") as f:
f.write(content)
os.rename(filename,"/home/user/testfile")

最佳答案

    # query current umask by replacing it
old_umask = os.umask(0)

# immediately restore the umask
os.umask(old_umask)

fd, tmp_file_path = tempfile.mkstemp(prefix='.%s.' % os.path.basename(self._file_path), dir=directory)

# calculate the octal chmod and chmod the temp file
octal_file_chmod = int('666', 8) & ~old_umask
os.chmod(tmp_file_path, octal_file_chmod)

关于python - 如果重命名临时文件,如何保留默认 umask,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12181938/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com