Forum: PC-Programmierung Python Backslash Escape


von VH (Gast)


Lesenswert?

Hallo,

ich habe das Problem, dass wenn ich nur ein Backslash in Python 3 
anzeigen möchte mir immer zwei angezeigt werden. Möchte ich zwei 
anzeigen, verdoppelt sich die Zahl um vier. Ich kann also keine ungerade 
Anzahl an Backslashes bekommen.
Beispiel:
variable = "\\" <- ich escape hier mit einem Backslash um ein einziges 
sehen zu wollen
Ergebnis: '\\' <- zwei backslashes
variable = "\\\\" <- Hier erwarte ich Zwei Backslashes
Ergebnis: '\\\\' <- vier Backslashes
Da ich aber nicht "\" oder "\\\" schreiben kann um einen oder 3 
Backslashes zu sehen weil ein Zeichen ein Escapezeichen ist bleibe ich 
hierbei hängen. Hat jemand einen Tipp für mich wie ich eine ungerade 
Anzahl an Backslashes sehen kann?

Gruß
VH

von Rolf Magnus (Gast)


Lesenswert?

Bei mir tritt dieses Problem nicht auf, weder in python2, noch in 
python3.

von Yalu X. (yalu) (Moderator)


Lesenswert?

Wie gibst du die Variable aus? Wahrscheinlich, indem du im interaktiven
Modus einfach
1
>>> variable

eintippst. Dann wird der String mitsamt den Hochkommata und den
Escape-Backslashes (also das Ergebnis von repr(variable)) angezeigt.

Gibts du die Variable hingegen mit
1
>>> print(variable)

aus, so wie es ein normales Python-Programm ebenfalls tun würde,
erhältst du die erwartete Ausgabe.

von VH (Gast)


Lesenswert?

@Yalu X.: Das stimmt, so ist es in dem Fall auch.

Mein eigentliches Problem ist, dass ich ein Bashskript habe wo ich ein 
Pythonskript aufrufe mit Argument zu einem Pfad mit einer Datei. Ich 
rufe also das Skript mittels
1
python Skript.py <Pfad>
Wobei <Pfad> in etwa sowas ist: "\\...\...\...\<datei>.txt"
Wenn ich nun diese Datei zum Lesen öffne mittles
1
open(<Pfad>,"r")
liest er den Pfad wie folgt: "\\\\...\\.\\..\\..."
Das bekomme ich irgendwie nicht weg, dass der parameter nur mit der von 
mir gewollten Backslash-Anzahl übergeben wird.

von VH (Gast)


Lesenswert?

Hat sich erledigt, der Fehler lag an meiner Argumentübergabe begraben.
Habe vergessen, dass das erste Argument in Python immer sys.argv ist und 
erst das zweite sys.argv[1].

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.