Dateipfad splitten

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Kamik423
User
Beiträge: 93
Registriert: Donnerstag 28. März 2013, 16:53

Hallo, ich hab mal wieder eine Frage:
Ich habe eine Dateipfad: "D:\Dateien\Bilder"
daraus möchte ich die Liste ["D:", "Dateien", "Bilder"] bekommen
oder am besten gleich "Bilder"
aber

Code: Alles auswählen

liste.split("\")
funktioniert nicht :( (ASCII-Fehler: SyntaxError: EOL while scanning string literal)
wie muss ich das machen?
Vielen Dank im Vorraus

Kamik423
0x4c65742773206d616b652073757265207468617420686973746f7279206e6576657220666f726765747320746865206e616d6520656e746572707269736521
Benutzeravatar
snafu
User
Beiträge: 6740
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Bitte kopiere den exakten Quelltext, bei dem der Fehler auch tatsächlich auftritt und die exakte Fehlermeldung. Würde man sich an deine Erklärung halten, dann käme folgendes heraus:

Code: Alles auswählen

>>> "D:\Dateien\Bilder".split("\")
  File "<stdin>", line 1
    "D:\Dateien\Bilder".split("\")
                                 ^
SyntaxError: EOL while scanning string literal
Man muss daher den Backslash vor einer Fehlinterpretation schützen, da dieser eine besondere Bedeutung einnimmt. Dies kann man durch einen weiteren Backslash erreichen:

Code: Alles auswählen

>>> "D:\Dateien\Bilder".split("\\")
['D:', 'Dateien', 'Bilder']
Wie du siehst: Kein "ASCII-Fehler" (was auch immer das sein soll).

Deshalb wie gesagt: Zeige bitte lauffähigen Code, bei dem der Fehler auftritt.

EDIT: Habe das hinter dem ominösen ASCII-Fehler entweder übersehen oder du hast es dazu editiert. Naja, in dem Fall habe ich ja offenbar die Lösung für dein Problem bereits geliefert. :)
BlackJack

@Kamik423: Pfade sollte man mit den entsprechenden Funktion aus `os.path` verarbeiten und nicht mit reinen Zeichenkettenoperationen.
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

BlackJack hat geschrieben:@Kamik423: Pfade sollte man mit den entsprechenden Funktion aus `os.path` verarbeiten und nicht mit reinen Zeichenkettenoperationen.
Ein Generator unter Verwendung von os.path.split könnte da passen.
Antworten