web-dev-qa-db-ja.com

「生の」文字列を通常の文字列に変換するにはどうすればよいですか?

Pythonでは、次のような文字列があります。

'\\x89\\n'

次のような通常の文字列にデコードするにはどうすればよいですか?

'\x89\n'
18
Wenlin.Wu

Python 2バイトの文字列は、_'string_escape'_コーデックでデコードできます。

_raw_string.decode('string_escape')
_

デモ:

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

nicodeリテラルの場合、_'unicode_escape'_を使用します。 Python 3では、文字列はデフォルトでUnicode文字列ですが、バイト文字列のみに.decode()メソッドがあります。

_raw_byte_string.decode('unicode_escape')
_

入力文字列がすでにユニコード文字列の場合、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'
_
27
Martijn Pieters

これはPython 3:

b'\\x89\\n'.decode('unicode_escape')
8
Ivan Kucerak