2014-12-28 2 views
0

Как игнорировать все escape-символы в строке?Использование метода замещения в Python

Fx:\n \t %s

Так что, если у меня есть строка:

text = "Hello \n My Name is \t John" 

Теперь, если я печатаю строку на выходе будет отличаться от фактической строки:

 
Hello 
My Name is  John 

Как напечатать «настоящую строку» следующим образом:

 
Hello \n My Name is \t John 

Вот пример, который не работает:

text = "Hello \n My Name is \t John" 
text.replace('\n', '\\n').replace('\t', '\\t') 
print text 

Это не работает! Нет разницы

Я рассмотрел некоторые темы, где вы могли их удалить, но я этого не хочу. Как их игнорировать? Итак, мы можем видеть фактическую строку?

+0

'str.replace' не работает на месте. Вы должны вернуть возвращаемое значение вашей переменной. –

+0

Вы спрашиваете, как игнорировать все escape-символы и проверять ответ не об этом. Логика! – GLHF

+0

Возможный дубликат [Python: отображение специальных символов при использовании оператора печати] (http://stackoverflow.com/questions/6477823/python-display-special-characters-when-using-print-statement) – Joe

ответ

1

Ваш метод не работает, потому что строки являются неизменными. Вам необходимо переназначить текст text.replace(...), чтобы заставить его работать.

>>> text = text.replace('\n', '\\n').replace('\t', '\\t') 
>>> print text 
Hello \n My Name is \t John 
1

Вы можете вызвать repr на строку перед печатью:

>>> text = "Hello \n My Name is \t John" 
>>> print repr(text) 
'Hello \n My Name is \t John' 
>>> print repr(text)[1:-1] # [1:-1] will get rid of the ' on each end 
Hello \n My Name is \t John 
>>> 
0

Маленького, но очень полезный метод, использовать г:

a=r"Hey\nGuys\tsup?" 
print (a) 

Выход:

>>> 
Hey\nGuys\tsup? 
>>> 

Таким образом, для вашей проблемы:

text =r"Hello\nMy Name is\t John" 
text = text.replace(r'\n', r'\\n').replace(r'\t', r'\\t') 
print (text) 

Выхода:

>>> 
Hello\\nMy Name is\\t John 
>>> 

Вы должны определить текстовую переменную AGAIN, поскольку строки являются неизменяемыми.

Смежные вопросы