Crea nuevos directorios con Python en Linux

Crea nuevos directorios con Python en Linux

Estoy ejecutando un script de Python en una instalación nueva de Ubuntu 20.04.2. El script comprueba si existe un directorio y, en caso contrario, lo crea. El código es:

os.makedirs(f'..{os.sep}logs{os.sep}')

Obtuve el siguiente error:

PermissionError: [Errno 13] Permission denied: '../logs/'

En el símbolo del sistema, simplemente agregaría un sudo, pero necesito mi script de Python para poder crear estos directorios, así que mi pregunta es ¿cómo puedo permitir que Python cree nuevos directorios?

Respuesta1

La respuesta simple es: no es así. Si bien estoy seguro de que es posible que su script solicite y obtenga permisos elevados, la forma normal de hacerlo es asumir que quien ejecuta el script tiene acceso a lo que el script necesita cambiar. Después de todo, si el usuario no tiene permiso, entonces no tiene por qué ejecutar el script en primer lugar.

Así que simplemente escriba su guión y déjelo en manos del usuario para asegurarse de que tiene derecho a hacer lo que quiera. En su lugar, debe modificar su secuencia de comandos para detectar el error y mostrar un mensaje de error más informativo para que el usuario pueda saber a qué directorio necesita acceso y qué tipo de acceso. Entonces, en lugar de ../log, obtenga la ruta completa y en lugar de "permiso denegado", verifique qué permisos se requieren y pruébelos antes de intentar la operación. De esa manera, puede corregir el error con elegancia y decirle al usuario lo que necesita.

información relacionada