Skip to content

Instantly share code, notes, and snippets.

@mrroot5
Last active May 29, 2020 07:09
Show Gist options
  • Save mrroot5/0a3aff9d758beb44d77814eb74a59e49 to your computer and use it in GitHub Desktop.
Save mrroot5/0a3aff9d758beb44d77814eb74a59e49 to your computer and use it in GitHub Desktop.
Python obtener carpeta donde se ejecuta el fichero actual. Keywords: path, dirname, file, directory, directories, log, logs

Intro

Pretendemos obtener el path actual de un fichero concreto. Es muy útil para cargar ficheros de forma absoluta en base a la ruta actual donde estamos trabajando.

Obtener path completo

os.path.dirname(os.path.realpath(__file__))

Explicación:

  • file: permite obtener la ruta actual del fichero que se está ejecutando.

  • os.path.realpath: devulve la ruta real del sistema que tiene ese fichero eliminando enlaces simbólicos, etc.

  • os.path.dirname: obtienes el directorio del path que recibe, eliminando la parte concreta del fichero.

Comprobar funcionamiento

Asumiendo que uses Linux, en este caso probado con Debian 9+, Ubuntu 18.04+ y Zorin 15+

  • Abrimos la consola:

Puededs buscarla en el listado de aplicaciones o pulsar CTRL + ALT + T.

  • Creamos un fichero vacío en nuestra home:
touch ~/test_dirname.py
  • Lo editamos y le añadimos el siguiente código:
import os

print('__file__: {}'.format(__file__))

print('os realpath: {}'.format(os.path.realpath(__file__)))

print('os dirname: {}'.format(os.path.dirname(os.path.realpath(__file__))))
  • Puedes ver que versión de python usas por defecto con:
python --version
  • Lo ejecutamos:
python ~/test_dirname.py

La salida será similar a la siguiente, $USER será tu usuario.

__file__: /home/$USER/foo.py
os realpath: /home/$USER/foo.py
os dirname: /home/$USER/

Fuentes

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment