Так что я не могу понять это... У меня строка, "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'
Я здесь что-то не хватает?
EDIT Я понимаю, что\является 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. Но замена не заменяет косые черты, как я думал, что это будет.