Pytanie:
jaki sposób efektywnie korzystać z funkcji stat uzyskać znaczące uprawnienia do plików (użytkownika, grupy i inne).Korzystanie z funkcji stat Pythona, aby skutecznie pozbyć się właściciela, grupy i innych uprawnień
Szczegóły:
ja zapytań uprawnienia pliku tak:
statInfo = os.stat
permissions = stat.S_IMODE (os.stat ('fooBar.txt').st_mode)
to przywrócenie uprawnienia w postaci dziesiętnej. Jeśli więc fooBar.txt
ma uprawnienia do pliku ósemkowego 0700
, tutaj permissions
jest ustawiona na wartość dziesiętną 448
. Co chcę jest ustawiony 9 zmiennych dla każdego uprawnienia (ownerRead
, ownerWright
, ownerExecute
, groupRead
...) Jeśli miałem zamiar to zrobić, chciałbym wykorzystać brute force metody tak:
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
Czy istnieje skuteczniejszy sposób robienia tego bez konieczności konwersji na ósemkowy, ponieważ funkcja ta zostanie wywołana całkiem sporo?
Trzeba tylko zaznaczyć nazwiska jak 'global' jeśli zamierzamy je zmieniać . Ponieważ wątpię, że będziesz modyfikował moduły "os" i "stat", nie musisz ich nigdzie oznaczać jako "globalne". –
oops, mój zły, skopiowałem to z wewnątrz funkcji – puk
Wiem, zgadłem. Pozwól, że ci jeszcze powiem: nie musisz deklarować tych "globalnych", ponieważ będą automatycznie wyszukiwane z zakresu modułów bez tego. –