Moin,
gibts irgendwie eine fertige funktion die mir aus zwei absoluten pfaden einen relativen macht ?
also ich habe
pfad1 = "/home/username/project/ordner1"
pfad2 = "/home/username/project/ordner2"
wenn ich also jetzt den relativen pfad von ordner 2 zu ordner 1 haben will müsste das ergebnis doch "../ordner1" sein.
und gibts dafür eine funktion wie
relativpath(pfad1,pfad2)
gruß
frozen
wie relativen pfad aus zwei absoluten ermittern ??
Ich glaub nicht. Mein versuch:frozen hat geschrieben:gibts irgendwie eine fertige funktion die mir aus zwei absoluten pfaden einen relativen macht ?
Code: Alles auswählen
def relativpath(pfad1,pfad2):
pfad1 = pfad1.split('/')
pfad2 = pfad2.split('/')
for i in range(min(len(pfad1),len(pfad2))):
if pfad1[i] != pfad2[i]: break
else:
i+=1
return "../" * len(pfad2[i:]) + "/".join(pfad1[i:])
joe
Korrektur:
Bei relativpath("/a/b","/a/b/c/d") ist das ergebnis "../../", sollte aber "../.." sein.
Deswegen:
joe
Bei relativpath("/a/b","/a/b/c/d") ist das ergebnis "../../", sollte aber "../.." sein.
Deswegen:
Code: Alles auswählen
return ("../" * len(pfad2[i:]) + "/".join(pfad1[i:])).strip('/')
ok danke schöne, eine lösung habe ich zwar nicht gesucht, weil ich die schon habe, aber die von dir ist kürzer als meine
frozen
frozen