1

印刷後に次のような文字列があります。\x4d\xff\xfd\x00\x02\x8f\x0e\x80\x66\x48\x71

しかし、この文字列を印刷できないものに変更したい"\x4d\xff\xfd\x00\x02\x8f\x0e\x80\x66\x48\x71"(シリアルポートに書き込む必要がある)。「 」に問題があることはわかってい\ます。この印刷可能なバックスラッシュを印刷不可に置き換えるにはどうすればよいですか?

4

4 に答える 4

5

文字列をデコードする場合は、decode()with'string_escape'パラメータを使用して、変数内のリテラルをpythonリテラル文字列として解釈します(コードで定数文字列として入力されたかのように)。

mystr.decode('string_escape')
于 2010-07-27T10:42:12.377 に答える
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が印刷できない文字列を印刷しようとしたときに印刷するものです。

于 2010-07-27T10:41:39.757 に答える
1
your_string.decode('string_escape')
于 2010-07-27T10:41:24.400 に答える
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
于 2010-07-27T10:40:12.910 に答える