Так что я не могу понять это ... У меня есть строка, скажем, "a\\nb"
, и я хочу, чтобы это стало "a\nb"
.Я пробовал все следующее, но ни один из них не работает:
>>> 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'
Я действительно не понимаю, почему работает последний, потому что он работает нормально:
>>> a.replace("\\","%")
'a%nb'
Есть личто-то мне здесь не хватает?
РЕДАКТИРОВАТЬ Я понимаю, что \ - это escape-символ.Здесь я пытаюсь превратить все \\n
\\t
и т. Д. В \n
\t
и т. Д., И замена, похоже, не работает так, как я себе представлял.
>>> a = "a\\nb"
>>> b = "a\nb"
>>> print a
a\nb
>>> print b
a
b
>>> a.replace("\\","\\")
'a\\nb'
>>> a.replace("\\\\","\\")
'a\\nb'
Я хочу, чтобы строка a выглядела как строка b.Но замена не заменяет косые черты, как я и думал.