Отображать специальные символы при использовании оператора печати - PullRequest
76 голосов
/ 25 июня 2011

Я хотел бы отображать escape-символы при использовании оператора print.Например,

a = "Hello\tWorld\nHello World"
print a
Hello   World
Hello World

Мне бы хотелось, чтобы на экране появилось: "Hello \ tWorld \ nHello \ sWorld"

Ответы [ 3 ]

139 голосов
/ 25 июня 2011

Используйте repr :

a = "Hello\tWorld\nHello World"
print repr(a)
# 'Hello\tWorld\nHello World'

Обратите внимание, вы не получите \s для пробела.Я надеюсь, что это была опечатка ...?

Но если вы действительно хотите \s для пробелов, вы можете сделать это:

print repr(a).replace(' ',r'\s')
14 голосов
/ 25 июня 2011

Вы просто хотите напечатать строку таким образом, или вы хотите, чтобы это было внутреннее представление строки?Если последнее, создайте его как необработанную строку , добавив к ней префикс r: r"Hello\tWorld\nHello World".

>>> a = r"Hello\tWorld\nHello World"
>>> a # in the interpreter, this calls repr()
'Hello\\tWorld\\nHello World'
>>> print a
Hello\tWorld\nHello World

Кроме того, \s не является escape-символом, кромерегулярные выражения, и тогда они по-прежнему имеют совершенно другое значение, чем то, для чего вы их используете.

0 голосов
/ 15 октября 2014

Другие ответы выглядят лучше. Кроме того, я думаю, что это должно работать тоже. я добавил "\" перед другим "\", чтобы избежать их.

a = "Hello\\tWorld\\nHello World"

print a
...