Python(2.7以下でこれを試した)では、を使用して作成されたファイルtempfile.NamedTemporaryFile
がumaskディレクティブに従っていないようです:
import os, tempfile
os.umask(022)
f1 = open ("goodfile", "w")
f2 = tempfile.NamedTemporaryFile(dir='.')
f2.name
Out[33]: '/Users/foo/tmp4zK9Fe'
ls -l
-rw------- 1 foo foo 0 May 10 13:29 /Users/foo/tmp4zK9Fe
-rw-r--r-- 1 foo foo 0 May 10 13:28 /Users/foo/goodfile
NamedTemporaryFile
umask を取得しない理由はありますか? ファイルの作成中にこれを行う方法はありますか?
os.chmod() でいつでもこれを回避できますが、ファイルの作成中に正しいことを行う何かを望んでいました。