En Python (probamos este en 2.7 y anteriores) se ve como un archivo creado utilizando tempfile.NamedTemporaryFile
no parece obedecer a la directiva máscara de usuario:¿Puedo establecer umask para tempfile.NamedTemporaryFile en python?
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
Cualquier idea de por qué NamedTemporaryFile
no recogerá la máscara de usuario? ¿Hay alguna manera de hacer esto durante la creación del archivo?
Siempre puedo solucionar esto con os.chmod(), pero esperaba algo que hiciera lo correcto durante la creación del archivo.
Gracias - tienes que amar a una respuesta que vincula a una línea específica en ¡la fuente! – shreddd
Gracias por su respuesta. Simplemente notaré que esto es extraño, o de lo contrario me falta otra forma de hacer lo que quiero. Simplemente quiero usar un NamedTemporaryFile solo para poder descartarlo si encuentro errores al generarlo, pero moverlo a un archivo que podría haber creado de otra manera con un simple abrir (nombre, 'w "). Parece al igual que una solicitud de función se llama para ... – nealmcb