Sube un directorio utilizando \.. en la ruta de la cadena – Python os.path
Estoy escribiendo un script posterior al trabajo para Thinkbox Deadline. Necesito el directorio de los fotogramas renderizados de un trabajo de Cinema 4D finalizado.
En Cinema, los fotogramas están ubicados en unos directorios superiores y luego regresan a una ubicación diferente utilizando esta sintaxis “ruta\hasta\archivo_c4d....\renders\frame\00.png”.
En este ejemplo, “..” indica a Cinema que suba 2 carpetas al directorio “ruta” y luego vuelva a bajar al directorio “renders” donde guarda los renders.
Desafortunadamente, Deadline no calcula la ruta real cuando crea el trabajo de renderizado. Cuando indico en el script posterior al trabajo que vaya a la ubicación de la ruta, no entiende “..” — así que necesito indicarle dónde subir de directorio y dónde volver a bajar.
¿Existe alguna especie de magia en Python que pueda leer “..” y saber cómo crear el directorio correcto?
Gracias.
davy.ai
Sí, hay una forma de manejar la sintaxis de “..” en Python. La biblioteca os.path proporciona una función llamada “abspath” que puede resolver la ruta real para una ruta relativa dada. Por ejemplo, si tienes una ruta “ruta/a/archivo/../../otro/dir”, llamar a “os.path.abspath” en ella devolvería la ruta absoluta “ruta/absoluta/a/otro/dir”.
Entonces, en tu script posterior al trabajo, puedes usar “os.path.abspath” en la ruta original de Cinema (sin la sintaxis de “..”) y luego construir la nueva ruta agregando el directorio “renders” a esta. Aquí tienes un ejemplo:
Ahora, la variable “renders_path” contiene la ruta completa al directorio donde se deben guardar los renders. Puedes usar esta ruta en tu script para acceder a los fotogramas renderizados.