python os.path

Python se une al directorio actual y al directorio padre con os.path.join



(2)

Quiero unirme a la ruta del directorio actual y una ruta de directorio relativa goal_dir algún lugar del árbol de directorios, por lo que obtengo la ruta absoluta a goal_dir . Este es mi intento:

import os goal_dir = os.path.join(os.getcwd(), "../../my_dir")

Ahora, si el directorio actual es C:/here/I/am/ , se une a ellos como C:/here/I/am/../../my_dir , pero lo que quiero es C:/here/my_dir . Parece que os.path.join no es tan inteligente.

¿Cómo puedo hacer esto?


Considere usar os.path.abspath esto evaluará la ruta absoluta

o Uno puede usar os.path.normpath esto devolverá la ruta normalizada (Normalizar la ruta, eliminar las barras diagonales, etc.)

Uno debe elegir una de estas funciones dependiendo de los requisitos

En caso de abspath En tu ejemplo, no puedes usar os.path.join

os.path.abspath("../../my_dir")

Se debe usar os.path.normpath si está interesado en la ruta relativa.

>>> os.path.normpath("../my_dir/../my_dir") ''../my_dir''


Puedes usar normpath , realpath o abspath :

import os goal_dir = os.path.join(os.getcwd(), "../../my_dir") print goal_dir # prints C:/here/I/am/../../my_dir print os.path.normpath(goal_dir) # prints C:/here/my_dir print os.path.realpath(goal_dir) # prints C:/here/my_dir print os.path.abspath(goal_dir) # prints C:/here/my_dir