Frage:
Wie effizient ich die stat Funktion verwenden, um aussagekräftige Dateiberechtigungen (Benutzer, Gruppe und andere) zu erhalten.Mit Python Funktion stat effizient Besitzer zu erhalten, Gruppen und andere Berechtigungen
Details:
ich die Dateiberechtigungen sind Abfrage etwa so:
statInfo = os.stat
permissions = stat.S_IMODE (os.stat ('fooBar.txt').st_mode)
Diese Berechtigungen in Dezimalform zurück. Wenn fooBar.txt
die oktalen Dateiberechtigungen 0700
hat, wird hier permissions
auf den Dezimalwert 448
gesetzt. Was ich will, ist 9 Variablen für jede Berechtigung setzen (ownerRead
, ownerWright
, ownerExecute
, groupRead
, ...) Wenn ich dies tun würde, ich eine Brute-Force-Methode, wie so verwenden würde:
statInfo = os.stat
permissions = stat.S_IMODE (os.stat ('fooBar.txt').st_mode)
octPermissions = oct (permissions)
ownerRead = octPermissions [1] >= 4
ownerWrite = octPermissions [1] == 2 or octPermissions [1] == 6 or octPermissions [1] == 3 or
ownerExecute = octPermissions [1] == 1 or octPermissions [1] == 5 or octPermissions [1] == 3
Gibt es einen effizienteren Weg, dies zu tun, ohne in Oktal konvertieren zu müssen, da diese Funktion ziemlich oft aufgerufen wird?
Sie brauchen nur Namen wie 'global' zu markieren, wenn Sie sie gehen zu ändern . Da ich bezweifle, dass Sie die Module "os" und "stat" modifizieren, müssen Sie sie nirgends als "global" markieren. –
oops, mein Schlechter, ich kopierte dies von innen eine Funktion – puk
Ich weiß, ich vermutete. Lassen Sie es mich noch einmal sagen: Sie müssen diese "global" nicht deklarieren, da sie automatisch ohne den Modulumfang abgefragt werden. –