Python String mit Backslash \ bearbeiten?

4 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Es gibt kein Split Modul, jeder String hat eine split()-Methode. Du möchtest auf jeden Fall unbedingt os.sep verwenden. Und je nachdem, was Dein Ziel ist, möchtest Du eigentlich nicht die split()-Methode verwenden, sondern speziellere Funktionen, um Teile des Pfades zu extrahieren. Diese findest du ebenfalls in os.path.

Jamiiiiiii 
Fragesteller
 02.03.2019, 20:45

Ich habe in os.path jetzt nachgeguckt und es mit folgendem Code gelöst:

dso = os.path.expanduser("~")

Das gibt jetzt bei mir folgendes aus "C:\Users\name", genau wie ich wollte, vielen dank!

0
KarlRanseierIII  02.03.2019, 20:50
@Jamiiiiiii

Gerne, hätte ich aus der Frage ableiten können, daß Du das Heimatverzeichnis des ausführenden Benutzers bestimmen möchtest, dann hätte ich es Dir ggf. auch direkt sagen können ;-).

1

Nachdem Isendrak schon die m.M.n. richtige Antwort gegeben hat will ich dir noch erklären warum das so ist.

Der \ wird zum quoten verwendet. Stell dir vor du willst folgendes machen:

satz = "Er sagte: "es wird Zeit!"."

Dann wirst du einen Fehler bekommen denn Pyhon definiert den Sting zwischen dem 1. und 2. " und weiß dann nicht was der Rest der Zeile bedeutet. Um das zu lösen kann man entweder ' verwenden oder eben diejenigen " quoten (quasi deren Sonderfunktion abschalten) die Teil des Testes sein sollen:

satz = "Er sagte: \"es wird Zeit!\"."

Daher bedeutet

"\"

" ist der Beginn des Strings, durch \" wird dann das zweite " Teil des Strings und du schließt den String garnicht. So würde ")[0] einfach ein Teil eines Strings der nicht geschlossen wird.

Mit \\ wird dem \ die Sonderbedeutung entzogen und daher wird aus \\ ein einfacher Backslash im String. Jetzt alle Klarheiten beseitigt?!

Woher ich das weiß:Berufserfahrung – Softwareentwickler f. Web, Win. & Linux (seit 2001)

Also ich verstehe nicht ganz was du möchtest...aber folgende Dinge kann ich dir schonmal sagen:

  1. Bevor du die Variable "pfad" definierst, brauchst du einen Zeilenumbruch
  2. Die Bibliothek "split" ist mir nicht bekannt. Die split() Methode ist einfach so vorhanden, da musst du nichts importieren.
  3. Du schreibst oben etwas von dem typischen Windows Trenner "\" (Backslash), aber benutzt in deinem Code einen normalen Slash "/" (wie bei Linux z.B.)

Also mit diesen 3 Fehlern wird es schonmal nicht funktionieren.

Was hast du denn für ein Python, dass es da ein Modul namens split gibt? o.O

Aber ansonsten:

In Zeile 3 fehlt ein Zeilenumbruch (könntest du war auch mit nem Semikolon machen, aber nicht ganz ohne irgendetwas).

Im Fragetitel heisst es "\", im Fragetext "/". Was denn nun?

Aber um mal zu raten: Du suchst vermutlich etwas in der Art:

import os
path = os.path.abspath("").split("\\")
print(path)