Escaping the backslash - ich werd noch wahnsinnig

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
drnicolas
User
Beiträge: 92
Registriert: Sonntag 24. Juli 2016, 10:32

Ich versucher einer Variablen einen Pfad im WIndows-Stil mitzugeben, etwa so:

linkdir="\\servername\docs"
daraus wird dann aber \\servername\\docs

Wie kriege ich das hin?
Benutzeravatar
sparrow
User
Beiträge: 4245
Registriert: Freitag 17. April 2009, 10:28

Du musst entweder jeden Bachslash einzeln escapen:

Code: Alles auswählen

linkdir="\\\\servername\\docs"
oder du benutzt einen raw-String

Code: Alles auswählen

linkdir=r"\\servername\docs"
drnicolas
User
Beiträge: 92
Registriert: Sonntag 24. Juli 2016, 10:32

Die letztere Variante wird zu "\\\\servername\\docs"
Die erstere genauso.

Es muss aber unbedingt ein UNC-Pfad werden, da ich diese zeichenfloge in eine Datenbandk schreibe.
Benutzeravatar
sparrow
User
Beiträge: 4245
Registriert: Freitag 17. April 2009, 10:28

Ist es.
Für die Darstellung wird der Backslash für dich escaped.
Wenn ein Tablulator in der Zeichenkette wäre, würde dort ein \t stehen.
Wenn ein Newline stehen würde, dann wäre dort ein \n.

Angenommen da steht `servename\new_folder`. Ist das dann ein Backslash oder das Byte 0A für Linefeed?
Der Backslash leutet eine Escape-Sequenz ein und muss deshalb auch in der Darstellung esacped werden, damit du sicher sein kannst, was dort gemeint ist.

`\\` in der Darstellung ist also intern `\`.
`\n` ist intern ein Linefeed.
Antworten