Seite 1 von 1

Escaping the backslash - ich werd noch wahnsinnig

Verfasst: Freitag 7. April 2023, 15:34
von drnicolas
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?

Re: Escaping the backslash - ich werd noch wahnsinnig

Verfasst: Freitag 7. April 2023, 15:38
von sparrow
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"

Re: Escaping the backslash - ich werd noch wahnsinnig

Verfasst: Freitag 7. April 2023, 16:50
von drnicolas
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.

Re: Escaping the backslash - ich werd noch wahnsinnig

Verfasst: Freitag 7. April 2023, 17:14
von sparrow
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.