Skip to content

Instantly share code, notes, and snippets.

@mrroot5
Created March 27, 2020 08:45
Show Gist options
  • Save mrroot5/6cbba4e4015b799904662a3fa02c0a8b to your computer and use it in GitHub Desktop.
Save mrroot5/6cbba4e4015b799904662a3fa02c0a8b to your computer and use it in GitHub Desktop.
Obtener el path absoluto de un fichero relativo al fichero que estamos ejecutando. Keywords: path, dirname, realpath, join, path join, file, absolute, absolute path.

Intro

Pretendemos obtener la ruta absoluta real del sistema en base a la ubicación actual del fichero en el que estamos trabajando.

Obtener el directorio donde nos encontramos.

En este gist tienes explicado completamente el comando que usaremos a continuación: https://gist.github.com/mrroot5/0a3aff9d758beb44d77814eb74a59e49

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

Obtener la ruta absoluta

Suponemos una carpeta y fichero de ejemplo que podrían no existir. En el siguiente apartado tienes una explicación de como probarlo.

filename = 'example/example.txt'
dirname = os.path.dirname(os.path.realpath(__file__))
os.path.join(dirname, filename)

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 una carpeta y fichero para hacer la prueba:
mkdir ~/try_absolute_path
touch ~/try_absolute_path/example.txt
  • Creamos un fichero vacío en nuestra home:
touch ~/test_absolute_path.py
  • Lo editamos y le añadimos el siguiente código:
import os

filename = 'example/example.txt'
dirname = os.path.dirname(os.path.realpath(__file__))
absolute_path = os.path.join(dirname, filename)

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

print('os dirname: {}'.format(dirname))

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

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

os dirname: /home/$USER/  # Aqui estara tu python
os path join: /home/$USER/try_absolute_path/example.txt
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment