2

我真的不明白 Python 发生了什么。

如果我使用

f.write(data.encode("hex"))

Python 将我的数据转换为十六进制字符串,因此在“hello”的情况下,我得到字符串 68656c6c6f。

但是使用

f = open('file.dat', 'wb')
f.write("hello".encode("hex"))
f.close()

只会写十六进制的ascii。hexlify 也是如此。我需要 \00 格式的十六进制,但似乎一切都想给我 ascsii 中的十六进制字符串

4

2 回答 2

1

如果您使用的是 Python 3.x,我们有一个名为binascii的库,用于在二进制和 ASCII 之间进行转换...

>>> import binascii
>>> binascii.hexlify(b'Hi')
于 2012-12-10T23:42:41.517 回答
1
>>> "\\"+"\\".join(["hello".encode("hex")[i:i+2] for i in range(0,len("hello".encode("hex")),2)])
'\\68\\65\\6c\\6c\\6f'

现在你在每 2 个十六进制字符前面加上 \

于 2012-12-10T23:37:35.070 回答