我真的不明白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中给我六角形字符串
答案 0 :(得分:1)
>>> "\\"+"\\".join(["hello".encode("hex")[i:i+2] for i in range(0,len("hello".encode("hex")),2)])
'\\68\\65\\6c\\6c\\6f'
现在你有\前置每两个十六进制的字符
答案 1 :(得分:1)
如果您使用的是Python 3.x,我们有一个名为 binascii 的库,用于在二进制和ASCII之间进行转换......
>>> import binascii
>>> binascii.hexlify(b'Hi')