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.
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.
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/