我有一个打印后的字符串是这样的:\x4d\xff\xfd\x00\x02\x8f\x0e\x80\x66\x48\x71
但我想将此字符串更改为"\x4d\xff\xfd\x00\x02\x8f\x0e\x80\x66\x48\x71"
,这是不可打印的(必须写入串口)。我知道这是'\
'的问题。如何将这个可打印的反斜杠替换为不可打印的?
答案 0 :(得分:5)
如果要解码字符串,请使用带有decode()
的'string_escape'
作为参数,将变量中的文字解释为python文字字符串(就好像它在代码中键入为常量字符串一样)
mystr.decode('string_escape')
答案 1 :(得分:2)
使用decode()
:
>>> st = r'\x4d\xff\xfd\x00\x02\x8f\x0e\x80\x66\x48\x71'
>>> print st
\x4d\xff\xfd\x00\x02\x8f\x0e\x80\x66\x48\x71
>>> print st.decode('string-escape')
MÿýfHq
在尝试打印不可打印的字符串时,最后一个垃圾是我的Python打印的内容。
答案 2 :(得分:1)
您将字符串文字的可打印表示与字符串本身混淆:
>>> c = '\x4d\xff\xfd\x00\x02\x8f\x0e\x80\x66\x48\x71'
>>> c
'M\xff\xfd\x00\x02\x8f\x0e\x80fHq'
>>> len(c)
11
>>> len('\x4d\xff\xfd\x00\x02\x8f\x0e\x80\x66\x48\x71')
11
>>> len(r'\x4d\xff\xfd\x00\x02\x8f\x0e\x80\x66\x48\x71')
44
答案 3 :(得分:1)
your_string.decode('string_escape')