Отображение экранированной версии строки в Python - PullRequest
0 голосов
/ 28 ноября 2018

У меня есть строка, содержащая символы, которые при отображении в терминале отображаются в виде пробелов, табуляции и т. Д. Например, эта строка:

python -c 'print "".join([chr(ord(c)^ord(k) for c,k in zip("#
                                                                      8
$│6%#>└227,|o6d'f,n'x9+/7O&;&!<M9,>11␍ :
-               $&!|mhPzRdsOezthMqUssH|o*9O,:qI&z##
 %kHydlqA'd'%fm9O.
hoCx=gHs","JaHeJCaUTE")'Pa^j,{00:S`d91+%IaIxjZ%i6?8% &'k)$      bCz6,$N;

Я хочу выполнить командуstring и создайте «безопасную строку для печати», которая будет отображать пробелы, вкладки и т. д. как экранированные.Например, из string.printable:

>>> import string
>>> string.printable
'0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~ \t\n\r\x0b\x0c'
>>> 

вкладка должна отображаться как \t, новая строка должна отображаться как \n и т. Д.

Как это сделать, покасовместимость с python 2.x и python 3?

1 Ответ

0 голосов
/ 28 ноября 2018

вы просто хотите repr ...

print(repr(my_string))

т.е.

s = """hello
world \xcc\x23\xee
"""
print(repr(s))
#'hello\nworld \xcc#\xee\n'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...