Gestión de Rutas en Python con Librerías byProject y PiHear
Clase 10 de 14 • Curso de Configuración Profesional de Entorno de Trabajo para Ciencia de Datos
Resumen
Objetivo
Necesitamos encontrar una forma de evitar que nuestro proyecto se rompa cuando movamos de lugar un archivo dentro del proyecto, para esto usaremos Referencias Relativas.
Implementación
Usando PyProjRoot:
import pyprojroot
pyprojroot.here() # Esto es un Posix Path (pathlib)
pyprojroot.here().joinpath("data", "raw")
- El path en pyprojroot se construye desde la raíz, no desde el path del archivo que lo ejecuta.
- Puedes mover el archivo a cualquier parte de la carpeta del proyecto, pero los paths no se romperán.
Usando PyHere:
import pyhere
pyhere.here() # También regresa un Posix Path
- El directorio que regresa es el directorio padre del directorio actual.
Comparación
Estas dos líneas de código regresan el mismo resultado:
pyprojroot.here("data").joinpath("raw")
pyhere.here().resolve() / "data" / "raw"
- Estas dos librerías sirven para crear shortcuts. Para esto, se puede usar la siguiente función:
def make_dir_function(dir_name):
def dir_function(*args):
return pyprojroot.here()joinpath(dir_name, *args)
return dir_function
data_dir = make_dir_function("data")
data_dir("raw", "pathlib") # Devuelve el path personalizado
- Puedes crear la cantidad de shortcuts que tu proyecto necesite.
Contribución creada por: Néstor Arellano.