Не удается избежать escape-символов в строке

В попытке ответить на этот вопрос мне удалось получить строку print escape-символы, избегая обратной косой черты.

Когда я пытаюсь обобщить его, чтобы избежать всех экранированных символов, он, похоже, ничего не делает:

>>> a = "word\nanother word\n\tthird word"
>>> a
'word\nanother word\n\tthird word'
>>> print a
word
another word
        third word
>>> b = a.replace("\\", "\\\\")
>>> b
'word\nanother word\n\tthird word'
>>> print b
word
another word
        third word

но этот же метод для определенных escape-символов, он работает:

>>> b = a.replace('\n', '\\n')
>>> print b
word\nanother word\n    third word
>>> b
'word\\nanother word\\n\tthird word'

Есть ли общий способ добиться этого? Должны включать \n, \t, \r, так далее.

1 ответ

Решение

Определите вашу строку как raw, используя r'text', как в коде ниже:

a = r"word\nanother word\n\tthird word"
print(a)
word\nanother word\n\tthird word

b = "word\nanother word\n\tthird word"
print(b)
word
another word
        third word
Другие вопросы по тегам