2

次の問題があります:

ファイルから生のバイナリ文字列に読み込みたい:

ファイルは次のようになります (バイナリ データではなく、エスケープ文字を使用)。

\xfc\xe8\x82\x00\x00\x00\x60\x89\xe5\x31\xc0\x64\x8b\x50\x30\x8b\x52

使用したコード:

data = open("ファイル名", "rb").read()

得られた結果:

b"\\xfc\\xe8\\x82\\x00\\x00\\x00\\x60\\x89\\xe5\\x31\\xc0\\x64\\x8b\\x50\\x30\\x8b \\x52"

ダブル\で。

: characters のようなバイナリ文字列として読み取るにはどうすればよい\xaaですか? (エスケープ文字なし)

4

3 に答える 3

2

Ok。ここでの問題は、間違った質問をしていることです。データ ファイルは生のバイナリ文字列ではなく、エスケープ文字でエンコードされたエンコードされたものです。ただし、代わりにエスケープをデコードする必要がある場合は、生のバイナリとして読み取っています。試す

data = open("filename", "r", encoding='unicode_escape').read().encode('raw_unicode_escape')

代わりは。

編集:わかりました、これで動作します。utf-8 (デフォルト) ではなく、raw_unicode_escape にエンコードする必要があります。

于 2016-05-01T18:34:55.753 に答える
0

この出力は OK です

Python は、このデータが印刷不可であることを示すために二重のバックスラッシュを付けて出力しています。ただし、バイトとして正しく保存されます。

于 2016-05-01T18:27:28.383 に答える