如何转换" raw"字符串成普通字符串?

时间:2014-06-16 11:16:21

标签: python string python-3.x rawstring

在Python中,我有一个这样的字符串:

'\\x89\\n'

如何将其解码为普通字符串,如:

'\x89\n'

2 个答案:

答案 0 :(得分:23)

Python 2字节字符串可以使用'string_escape'编解码器解码:

raw_string.decode('string_escape')

演示:

>>> '\\x89\\n'.decode('string_escape')
'\x89\n'

对于 unicode 文字,请使用'unicode_escape'。在Python 3中,默认情况下字符串是unicode字符串,只有字节字符串有.decode()方法:

raw_byte_string.decode('unicode_escape')

如果您的输入字符串已经一个unicode字符串,请使用codecs.decode()进行转换:

import codecs

codecs.decode(raw_unicode_string, 'unicode_escape')

演示:

>>> b'\\x89\\n'.decode('unicode_escape')
'\x89\n'
>>> import codecs
>>> codecs.decode('\\x89\\n', 'unicode_escape')
'\x89\n'

答案 1 :(得分:8)

这适用于Python 3:

b'\\x89\\n'.decode('unicode_escape')