path relativo entre dos directorios
Alexis Roda
alexis.roda.villalonga en gmail.com
Sab Jul 22 19:53:36 CEST 2006
En/na Carles Pina i Estany ha escrit:
> Hola,
>
> Cual es la manera más sencilla de tener el path relativo entre dos
> directorios?
elimina el prefijo común y luego añade tantos .. como la longitud del
origen restante:
origen: /home/carles/a/b/c -> b/c -> longitud 2
destino: /home/carles/a/d/e -> d/e
../../d/e
origen: /home/carles/a -> -> longitud 0
destino: /home/carles/a/d/e -> d/e
d/e
origen: /home/carles/down -> /home/carles/down -> longitud 3
destino: /etc/samba -> /etc/samba
../../../etc/samba
seria algo asi:
from itertools import izip
def relatiu(orig, desti) :
o = orig.split('/')[1:]
d = desti.split('/')[1:]
for n, (i, j) in enumerate(izip(o, d)) :
if i != j :
break
if n + 1 == len(o) :
n += 1
return '../' * (len(o) - n) + '/'.join(d[n:])
Saludos
Más información sobre la lista de distribución Python-es