我有控制字符的字符串,我想让它们可见(例如,打印它们的文档)。
例如,我有
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编码之后,而是在转义序列之后。
答案 0 :(得分:3)
您只需将字符串转换为原始字符串:
>>> a = 'foo\nbar'
>>> print a
foo
bar
>>> print a.encode('string-escape')
foo\nbar
注意:这仅适用于Python2,3等效于str.encode('unicode_escape')
AFAIK