Скажем, у меня есть строка в Python 3.2 вроде этого:неэкранированными экранированные символы в строку, используя Python 3.2
'\n'
Когда я печатаю() это на консоль, он показывает как новая линия, очевидно. Я хочу, чтобы иметь возможность печатать его буквально как обратную косую черту, за которой следует n. Кроме того, мне нужно сделать это для всех экранированных символов, таких как \ t. Поэтому я ищу для функции экранирования в(), что, в общем случае, будет работать следующим образом:
>>> s = '\n\t'
>>> print(unescape(s))
'\\n\\t'
Возможно ли это в Python без построения словаря уцелевших символов их буквенных замен?
(В случае, если кому-то интересно, почему я делаю это потому, что мне нужно передать строку на внешнюю программу из командной строки Эта программа понимает все стандартные управляющие последовательности.).
Когда вы говорите «один из командной строки» Я предположим, что вы на самом деле имеете в виду через stdout, и в этом случае программа, с которой вы передаете данные, должна потреблять '\ n' и т. д. без каких-либо проблем. То есть, если вы напечатали данные после того, как они были переданы в эту вторую программу, вы увидите, что '\ n' все равно будет там. Если вы действительно не хотите этого избежать. Но сначала проверьте, если вы просто удалите лишнюю '\' во второй программе, вы, вероятно, ошибаетесь. – Endophage
У меня есть программа командной строки, называемая myutility. Он ожидает, что будет называться вот так: 'myutility -i \ n' Если я не отменяю строку, тогда он никогда не увидит, что \ n будет передан ему - он будет считать -i пустой аргумент. –