W Pythonie (próbowałem w 2,7 i poniżej) wygląda jak plik utworzony za pomocą tempfile.NamedTemporaryFile
nie wydaje się przestrzegać dyrektywy umask:Czy mogę ustawić umask dla tempfile.NamedTemporaryFile w 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
Każdy pomysł dlaczego NamedTemporaryFile
nie odbierze umask? Czy jest jakiś sposób, aby to zrobić podczas tworzenia pliku?
Zawsze można obejść to za pomocą os.chmod(), ale miałem nadzieję, że coś, co zrobiłem dobrze podczas tworzenia pliku.
Dzięki - pokochałbyś odpowiedź, że linki do konkretnej linii w źródło! – shreddd
Dzięki za odpowiedź. Po prostu zauważę, że to dziwne, bo inaczej brakuje mi innego sposobu robienia tego, co chcę. Po prostu chciałbym użyć NamedTemporaryFile tylko po to, abym mógł go wyrzucić, jeśli napotkam na błędy generujące je, ale przenieś je na sukces do pliku, który mógłbym stworzyć w zwykły sposób (nazwa, "w"). Wydaje się podobnie jak prośba o funkcję ... – nealmcb