Domanda:
come si usa in modo efficiente la funzione stat per ottenere i permessi dei file significativi (utenti, gruppi e altri).Usando la funzione stat di Python per ottenere in modo efficiente proprietario, il gruppo e altre autorizzazioni
Dettagli:
sto interrogando la permessi dei file in questo modo:
statInfo = os.stat
permissions = stat.S_IMODE (os.stat ('fooBar.txt').st_mode)
Ciò restituisce i permessi in forma decimale. Quindi se fooBar.txt
ha i permessi del file ottale 0700
, qui permissions
è impostato sul valore decimale 448
. Quello che voglio è quello di impostare 9 variabili per ogni autorizzazione (ownerRead
, ownerWright
, ownerExecute
, groupRead
, ...) Se stavo per fare questo, mi piacerebbe utilizzare un metodo di forza bruta in questo modo:
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
Esiste un modo più efficiente per farlo senza dover convertire in ottale dato che questa funzione verrà chiamata un po '?
Hai solo bisogno di segnare nomi come 'global' se avete intenzione di modificarli . Dal momento che dubito che modificherete i moduli 'os' e' stat', non è necessario contrassegnarli come 'globali 'ovunque. –
oops, il mio male, ho copiato questo da dentro una funzione – puk
Lo so, ho indovinato. Lascia che te lo dica di nuovo: non è necessario dichiarare questi 'globali' poiché verranno cercati automaticamente dall'ambito del modulo senza quello. –