permiso de Python denegado

Funciones y métodos de Python

Python solo puede abrir, leer y escribir en archivos si un intérprete tiene los permisos necesarios. Si intenta abrir, leer o escribir en un archivo sobre el que Python no tiene permisos, encontrará el error PermissionError: [errno 13] permiso denegado .

En esta guía, analizamos qué significa este error y por qué se genera. Veremos un ejemplo para que pueda aprender exactamente cómo resolver este error.




PermissionError: [errno 13] permiso denegado

Las computadoras usan permisos de archivos para proteger la integridad de los archivos . Algunos archivos tienen acceso restringido de forma predeterminada. Puede cambiar los permisos de acceso de un archivo en cualquier momento.

Digamos que está trabajando en un programa importante. Es posible que solo desee que ese programa sea legible por usted. Para lograr esto, puede modificar el & ldquo; leer & rdquo; permisos en todos los archivos y carpetas de su programa. Esto limitaría el acceso a su programa.

Cualquier archivo al que intente acceder desde un programa Python debe ser legible por el usuario o grupo que ejecuta el archivo.

Si está ejecutando un script Python desde un proceso de servidor web, por ejemplo, deberá asegurarse de que el usuario propietario del servidor web tenga acceso a todos los archivos a los que hace referencia en su código.




Un escenario de ejemplo

Vamos a crear un programa que lea una lista de puntuaciones de la NFL de un archivo a un programa.

Tenemos un archivo llamado afc_east. Asóciese a un bootcamp hoy mismo.

El graduado promedio de un bootcamp pasó menos de seis meses en la transición profesional, desde comenzar un bootcamp hasta encontrar su primer trabajo.

Nuestro archivo es un CSV. Vamos a importar el módulo Python csv en nuestro código para poder trabajar con el archivo:

 importar csv 

A continuación, abramos nuestro archivo en nuestro programa Python. Podemos hacer esto usando la instrucción csv.reader () :

 con open ("afc_east.csv", "r") como archivo: reader = csv.reader (archivo) para r en reader: print (r) 

Este código se abrirá el archivo llamado afc_east.csv en modo lectura. Luego, el lector CSV interpretará el archivo. El lector de CSV devolverá una lista de valores sobre los que podemos iterar. Luego imprimimos cada uno de estos valores en la consola usando un bucle for y una instrucción print () para que podamos ver el contenido de nuestro archivo línea por línea.


Ejecutemos nuestro programa para ver si funciona:

 Traceback (última llamada más reciente): Archivo" test.py ", línea 3, en & lt; módulo & gt; con open (" afc_east.csv "," r ") como archivo: PermissionError: [Errno 13] Permiso denegado: 'afc_east.csv' 

Nuestro código devuelve un error.




La solución

Un PermissionError indica que Python no tiene los permisos adecuados para acceder a un archivo.

Comprobemos los permisos de nuestro archivo. Podemos hacer esto usando el comando comando ls -la :

Podemos ver que el archivo afc_east.csv es propiedad del root usuario :

 -rw-rw-rw- 1 personal raíz 46 5 de octubre 0 7:01 afc_east.csv 

Esto es un problema porque no ejecutamos Python como root. Esto significa que Python no puede leer nuestro archivo. Para corregir este error, necesitamos cambiar los permisos de propiedad de nuestro archivo usando el comando chown:

 chown james: admin afc_east.csv 

Este comando hace que & ldquo; james & rdquo; usuario y & ldquo; admin & rdquo; agrupar los propietarios del archivo.

Alternativamente, podríamos cambiar los permisos del archivo usando el comando chmod:

 chmod 755 afc_east.csv 

Este comando hace que nuestro archivo sea legible y ejecutable por todos. Solo el propietario puede escribir en el archivo. Intentemos ejecutar nuestra secuencia de comandos de Python nuevamente:

 ['Bills',' 4' , '0'] [' Patriots', '2',' 1'] ['Dolphins',' 1', '3'] [' Jets', '0',' 4'] 

Nuestro código imprime correctamente todas las puntuaciones de nuestro archivo.




Conclusión

El error PermissionError: [errno 13] permiso denegado ocurre cuando intenta acceder a un archivo desde Python sin tener los permisos necesarios.

Para corregir este error, use el comando chmod o chown para cambiar los permisos del archivo para que el usuario correcto y / o el grupo puede acceder al archivo. ¡Ahora tienes las habilidades que necesitas para resolver este error como un profesional!





permiso de Python denegado: StackOverflow Questions

Tutorials