Así que no puedo entender esto ... Tengo una cadena de decir, "a\\nb"
y quiero que esto se convierta en "a\nb"
. Intenté todo lo siguiente y ninguno parece funcionar;Python Reemplazar \ con
>>> a
'a\\nb'
>>> a.replace("\\","\")
File "<stdin>", line 1
a.replace("\\","\")
^
SyntaxError: EOL while scanning string literal
>>> a.replace("\\",r"\")
File "<stdin>", line 1
a.replace("\\",r"\")
^
SyntaxError: EOL while scanning string literal
>>> a.replace("\\",r"\\")
'a\\\\nb'
>>> a.replace("\\","\\")
'a\\nb'
Realmente no entiendo por qué funciona la última, porque esto funciona bien:
>>> a.replace("\\","%")
'a%nb'
¿Hay algo que me falta aquí?
EDIT Entiendo que \ es un personaje de escape. Lo que trato de hacer aquí es convertir todos \\n
\\t
etc. en \n
\t
etc. y reemplazar no parece funcionar de la manera que imaginaba.
>>> a = "a\\nb"
>>> b = "a\nb"
>>> print a
a\nb
>>> print b
a
b
>>> a.replace("\\","\\")
'a\\nb'
>>> a.replace("\\\\","\\")
'a\\nb'
Quiero que la cadena a parezca una cuerda b. Pero reemplazar no está reemplazando barras como pensaba.
su cadena original, 'a = 'una \\ nb'' en realidad no tiene dos '' \ '' caracteres, el primero es un escape para este último. Si lo haces, 'print a', verás que en realidad solo tienes un carácter' '\' '. – Santa