如何自动转义Python字符串中的控制字符

时间:2016-12-12 19:12:48

标签: python escaping control-characters

我有控制字符的字符串,我想让它们可见(例如,打印它们的文档)。

例如,我有

dialect = csv.sniffer().sniff(csvfile.read(1024))

我要打印

的内容
dialect.lineterminator

这显然包含控制字符。他们不能通过粘贴" \"来打印。在他们面前。我希望酌情看到\ n \ r或两者。

由于我使用的是Python 3,类似的问题已经提出使用str.encode,例如

    dialect.lineterminator.encode('unicode-escape')

但如果我打印出来,我就会

    b'\\r\\n'

尽管它的外观,但只有两个字节。我想要一个unicode字符串,如

    "\\r\\n"

这是一个4个字符的字符串。我不是在unicode编码之后,而是在转义序列之后。

1 个答案:

答案 0 :(得分:3)

您只需将字符串转换为原始字符串:

>>> a = 'foo\nbar'
>>> print a
foo
bar
>>> print a.encode('string-escape')
foo\nbar

注意:这仅适用于Python2,3等效于str.encode('unicode_escape') AFAIK

Here's a similar question我最近问过。