Saltar al contenido

¿Qué significa os.path.abspath(os.path.join(os.path.dirname(__file__), os.path.pardir))? pitón

Posteriormente a indagar en varios repositorios y sitios webs de internet al final hemos dado con la resolución que te mostraremos más adelante.

Solución:

Esa es una forma inteligente de referirse a las rutas independientemente de la ubicación del script. los críptico la línea a la que te refieres es:

os.path.abspath(os.path.join(os.path.dirname(__file__), os.path.pardir))

Hay 3 métodos y 2 constantes presentes:

  1. abspath devuelve la ruta absoluta de una ruta
  2. join unirse a las cadenas de ruta
  3. dirname devuelve el directorio de un archivo
  4. __file__ se refiere a scriptnombre de archivo
  5. pardir devuelve la representación de un directorio principal en el sistema operativo (generalmente ..)

Por lo tanto, la expresión devuelve el nombre completo de la ruta del script en ejecución en un multiplataforma seguro camino. No hay necesidad de cableado cualquier dirección, por eso es tan útil.

Puede haber otros enfoques para obtener un directorio principal de dónde se encuentra un archivo, por ejemplo, los programas tienen el concepto de directorio de trabajo actual, os.getcwd(). Así que haciendo os.getcwd()+'/..' Podría funcionar. Pero esto es muy peligroso, porque los directorios de trabajo se pueden cambiar.

Además, si el archivo está destinado a ser importado, el directorio de trabajo apuntará al archivo de importación, no al importado, pero __file__ siempre apunta al archivo del módulo real para que sea más seguro.

¡Espero que esto ayude!

Editar: PS – Python 3 simplifica enormemente esta situación al permitirnos tratar las rutas de una manera orientada a objetos, por lo que la línea anterior se convierte en:

from pathlib import Path
Path(__file__).resolve().parent.parent

__file__ representa el archivo desde el que se está ejecutando el código

os.path.dirname(__file__) le da el directorio en el que se encuentra el archivo

os.path.pardir significa “..” lo que significa un directorio por encima del actual

os.path.join(os.path.dirname(__file__), os.path.pardir) se une al nombre del directorio y “..”

os.path.abspath(os.path.join(os.path.dirname(__file__), os.path.pardir)) resuelve la ruta anterior y le brinda una ruta absoluta para el directorio principal del directorio en el que se encuentra su archivo

valoraciones y comentarios

Si te animas, tienes la opción de dejar un ensayo acerca de qué le añadirías a este escrito.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *