Wie die zur Verwendung von os.umask() in Python

Ich versuche mit einer umask mit dem os-Modul. Bitte beachten Sie auch meine normalen umask festlegen, in meiner ~/.Profil ist umask 0027.

In einer bash-shell,

umask 0022

ermöglichen wird eine Datei erstellt mit Berechtigungen

-rw-r--r--

Jedoch als us-import das os-Modul und tun Sie dies:

os.umask(0022)
[do some other code here that creates a file]

Ich bekomme die Berechtigungen der

----------

Erste, wie bekomme ich os.umask(mask) Verhalten sich wie die umask in der shell?

Zweitens, was ist die Logik zwischen den Unterschied von den beiden?

Anmerkung: ich habe versucht, die Umwandlung der 0022-zu-dezimal-in Fall ist es zu erwarten, ein dezimal-by-doing:

os.umask(18)

aber es gab Berechtigungen

-----w--w-

Beachten Sie auch, versuchte ich

os.umask(00022)

und

os.mask(0o0022)

Das hat nicht funktioniert entweder.

  • Ist es möglich die Datei bereits vorhanden ist? Sie müssen mit chmod statt in diesem Fall
  • Nein, es wurde gelöscht, bevor die hand, aber das ist ein guter Gedanke.
  • Vazquez-Abrams: der Versuch, die Einstellung umask 0027 in die shell zuerst, dann führen Sie das Skript aufrufen oder Ihr Dolmetscher.
  • Vazquez-Abrams: ur right, weder konnte ich mit einem einfachen test python-Programm, das getrennt von meiner code. Seltsam, denn ich verwende die gleichen Techniken.
  • wenn jemand will, um zu sehen, den code, tun "git clone git://git.code.sf.net/p/createlauncher/code createlauncher-code" und Blick auf die file_handler.py Modul und das main-Programm create_launcher.py. Die main site ist sourceforge.net/projects/createlauncher
  • verwenden Sie nicht den master branch, verwenden Sie die fix_other_buttons Zweig
  • fix_other_branch jetzt zusammengeführt master. Verwenden Sie den master-branch-version erstellen-launcher-0.1.4+alpha-commit-hash db099a
  • Mit old_mask = os.umask(0o000) und dann os.makedirs(./foo/bar) Verzeichnisse erstellen mit 777 als erwartet. Und oct(old_mask) gibt 022 die richtige (Standard-umask unter Unix).
  • Verwandte: stackoverflow.com/questions/15607903/...

InformationsquelleAutor narnie | 2012-04-24
Schreibe einen Kommentar