2011-01-13 9 views
10

¿Hay alguna manera fácil en Python para resolver operadores de rutas como ..? Por ejemplo, ¿hay una llamada a función que convierta: /../../test/../path a /path?Reparar rutas '../../' en python

Respuesta

19

Puede usar os.path.realpath() para obtener la ruta canónica. Para obtener una ruta relativa normalizada, use os.path.normpath().

+0

realpath() es la función genérica. Funciona perfectamente. Gracias. – rook

2

puede utilizar la función de os.path.abspathos.path

5

Puede utilizar abspath en el módulo os.path.

os.path.abspath (ruta de acceso)

devolver una versión normalizada absolutizado de la trayectoria de nombre de ruta. En la mayoría de las plataformas , esto es equivalente a normpath (join (os.getcwd(), path)).

3

Si está utilizando la biblioteca pathlib, el método a utilizar es resolve:

In [304]: print(p) 
/group_workspaces/cems2/fiduceo/Users/gholl/logs/2016/08/10/srf_errorprop/../../../../../scratch/accidentally_deleted_shift_log 

In [305]: print(p.resolve()) 
/group_workspaces/cems2/fiduceo/Users/gholl/scratch/accidentally_deleted_shift_log 
Cuestiones relacionadas