Hallo,
Leider konnte ich weder im Forum noch im Netz etwas zu diesem Problem finden.
Mein Benutzer-Verzeichnis unter Windows 10 liegt unter C:\Users\USER
Die Funktion so.path.expanduser("~") liefert mysteriöser Weise
C:\\Users\\USER
Zurück und so kann das Verzeichnis natürlich nicht gefunden werden.
Hat jemand schon einmal ein Ähnliches Problem gehabt und weiß wie ich den richtigen Pfad extrahieren kann?
os.path.expanduser Doppelter Slash in Windows
Das ist doch der richtige Pfad. Da sind halt doppelte slashes, weil backslash der escape-Character ist:
Insofern ist das erstmal korrekt.
Code: Alles auswählen
>>> "\\test"
"\\test"
>>> print("\\test")
\test
Du hast kein Problem. Du denkst nur du hast eines. Return liefert kein anderes Ergebnis. Alles, was da passiert, ist, dass dir die Repraesentation des Strings angezeigt wird. Kannst du emulieren mit print(repr(derstring)). Das ist ein Feature von Python, mit dem man die Ausgabe von Objekten einfach kopieren und wieder zu den Objekten machen kann. Genauso, wie eine Liste auch ausgegeben wird mit eckigen Klammern drumrum, etc.
Um das noch mal GANZ deutlich zu sagen: der String hat genau EIN backslash genau an der Stelle, an der du das erwartest. Die String-DARSTELLUNG im INTERPRETER ist eine, die so aussieht, wie sie aussehen MUSS, wenn du ein Stringliteral eingeben willst, das auch Backslashes enthaelt.
Was wuerde denn sonst passieren, wenn dein User nono hiesse? Kannst ja mal probieren, was
>>> "ich bin \nono"
vs
>>> print("ich bin \nono")
ausgibt, und wor da genau der Unterschied liegt.
Um das noch mal GANZ deutlich zu sagen: der String hat genau EIN backslash genau an der Stelle, an der du das erwartest. Die String-DARSTELLUNG im INTERPRETER ist eine, die so aussieht, wie sie aussehen MUSS, wenn du ein Stringliteral eingeben willst, das auch Backslashes enthaelt.
Was wuerde denn sonst passieren, wenn dein User nono hiesse? Kannst ja mal probieren, was
>>> "ich bin \nono"
vs
>>> print("ich bin \nono")
ausgibt, und wor da genau der Unterschied liegt.
Danke für die ausführliche Antwort
Mal ganz blöd gefragt: wenn ich mir den Escape Character anzeigen lassen kann mit Print repr, kann ich mir den escape character auch ausblenden lassen bei Return? Gibt es dafür eine Funktion?
Mal ganz blöd gefragt: wenn ich mir den Escape Character anzeigen lassen kann mit Print repr, kann ich mir den escape character auch ausblenden lassen bei Return? Gibt es dafür eine Funktion?