es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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.

Tags:  , , , ,

Answer

  1. Avatar for 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:

    import os
    
    cinema_path = r"ruta\a\archivo\c4d"
    absolute_path = os.path.abspath(cinema_path)
    renders_path = os.path.join(absolute_path, "renders")
    

    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.

Comments are closed.