我寫在我寫輸出到一個臨時文件,然後將該文件移動到其最終目的地,一旦結束,關閉一個Python腳本。腳本完成後,我希望輸出文件具有與通過open(filename,"w")
正常創建的權限相同的權限。實際上,該文件將具有tempfile模塊用於臨時文件的限制性權限集。如何獲得Python中的默認文件權限?
有沒有一種辦法,我要弄清楚輸出文件的「默認」文件權限是什麼,如果我在的地方創建它,這樣我可以移動它之前,把它們應用到臨時文件?
我寫在我寫輸出到一個臨時文件,然後將該文件移動到其最終目的地,一旦結束,關閉一個Python腳本。腳本完成後,我希望輸出文件具有與通過open(filename,"w")
正常創建的權限相同的權限。實際上,該文件將具有tempfile模塊用於臨時文件的限制性權限集。如何獲得Python中的默認文件權限?
有沒有一種辦法,我要弄清楚輸出文件的「默認」文件權限是什麼,如果我在的地方創建它,這樣我可以移動它之前,把它們應用到臨時文件?
有一個功能模塊umask
in the os
。你不能得到當前的umask本身,你必須設置它,並且函數返回以前的設置。
的umask是從父進程繼承。它描述了在創建文件或目錄時哪些位是而不是。
爲了記錄在案,我也有類似的問題,這裏是我使用的代碼:
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
看一看這樣的:http://stackoverflow.com/questions/1861836/checking-file -permissions-in-linux-with-python – vettipayyan
@vettipayyan:這個問題與此無關。 – hop