如何在Python中将十六进制写入文件

3
"我真的不明白Python到底在干什么。
如果我使用"
f.write(data.encode("hex"))

Python会将我的数据转换为十六进制字符串,所以对于"hello",我得到的字符串是68656c6c6f。
但是使用
f = open('file.dat', 'wb')
f.write("hello".encode("hex"))
f.close()

只需编写十六进制的ASCII码。 hexlify也是如此。 我需要以\00格式的十六进制,但似乎所有东西都想给我ASCII码字符串。
2个回答

2

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

>>> import binascii
>>> binascii.hexlify(b'Hi')

1
>>> "\\"+"\\".join(["hello".encode("hex")[i:i+2] for i in range(0,len("hello".encode("hex")),2)])
'\\68\\65\\6c\\6c\\6f'

现在每个 2 个十六进制字符前面都有 \。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接