Seite 1 von 1

Dateipfad splitten

Verfasst: Mittwoch 3. April 2013, 20:28
von Kamik423
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

Re: Dateipfad splitten

Verfasst: Mittwoch 3. April 2013, 20:43
von snafu
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. :)

Re: Dateipfad splitten

Verfasst: Donnerstag 4. April 2013, 13:56
von BlackJack
@Kamik423: Pfade sollte man mit den entsprechenden Funktion aus `os.path` verarbeiten und nicht mit reinen Zeichenkettenoperationen.

Re: Dateipfad splitten

Verfasst: Donnerstag 4. April 2013, 14:20
von /me
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.