permisos de verificación de directorios en pitón
Pregunta
quiero un programa de Python que da un directorio, devolverá todos los directorios dentro de ese directorio que tienen permisos (775) rwxrwxr-x
Gracias!
Solución
Ni recursivamente respuesta, aunque no está del todo claro que eso es lo que quiere el OP. Aquí hay un enfoque recursivo (no probado, pero se entiende la idea):
import os
import stat
import sys
MODE = "775"
def mode_matches(mode, file):
"""Return True if 'file' matches 'mode'.
'mode' should be an integer representing an octal mode (eg
int("755", 8) -> 493).
"""
# Extract the permissions bits from the file's (or
# directory's) stat info.
filemode = stat.S_IMODE(os.stat(file).st_mode)
return filemode == mode
try:
top = sys.argv[1]
except IndexError:
top = '.'
try:
mode = int(sys.argv[2], 8)
except IndexError:
mode = MODE
# Convert mode to octal.
mode = int(mode, 8)
for dirpath, dirnames, filenames in os.walk(top):
dirs = [os.path.join(dirpath, x) for x in dirnames]
for dirname in dirs:
if mode_matches(mode, dirname):
print dirname
Algo similar se describe en la documentación de stdlib stat .
Otros consejos
generador compacto basado en la respuesta de Brian:
import os
(fpath for fpath
in (os.path.join(dirname,fname) for fname in os.listdir(dirname))
if (os.path.isdir(fpath) and (os.stat(fpath).st_mode & 0777) == 0775))
¿Tiene que ser pitón?
También puede utilizar encontrar que hacer lo siguiente:
"encontrar. -Perm 775"
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow