BlackJack hat geschrieben:Wenn Du schon einen absoluten Pfad angibst, dann ist ja erst einmal die Frage wozu das Ergebnis denn relativ sein soll? Zum aktuellen Arbeitsverzeichnis?
Nene, hat nichts mitm Arbeitsverzeichnis zu tun. Das ist für einen Abgleich gedacht zwischen Server und Client, die in unterschiedlichen Rootverzeichnissen gleiche Ordnerstrukturen beherbergen.
Es ist somit also "uninteressant" wo das Arbeitsverzeichnis ist, wenn eine
Eingabe keinen Sinn macht, dann melde ich das.
Deine Lösung mit dem zählen der Zeichen finde ich nicht so prickelnd.
BlackJack hat geschrieben:Code: Alles auswählen
filelist.append(filename[len(current_working_directory) + 1:])
Hat die irgendwelche Vorteile gegenüber meinem split() ?
Zur Zeit sieht meine Lösung so aus:
Code: Alles auswählen
def walk(rootDir):
filelist = list()
# if rootDir is "." or ".." we need the abspath to split correct
rootDir = os.path.abspath(rootDir)
assert os.path.isdir(rootDir), "Unknown path:'%s'" % rootDir
for dirname,dirs,filenames in os.walk(rootDir):
# get relative path to rootDir
subDir = dirname.split(rootDir)[1]
for filename in filenames:
filelist.append(os.path.join(subDir,filename))
return filelist
(Bin immer für Verbesserungen offen)