Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中将十六进制写入文件_Python_Hex - Fatal编程技术网

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

如何在python中将十六进制写入文件,python,hex,Python,Hex,我真的不明白Python是怎么回事 如果我使用 f.write(data.encode("hex")) Python将我的数据转换为十六进制字符串,因此在“hello”的情况下 我得到了字符串68656C6F 然而使用 f = open('file.dat', 'wb') f.write("hello".encode("hex")) f.close() 将只写入十六进制的ascii码。 赫克斯利也是如此。 我需要\00格式的十六进制,但似乎所有东西都希望在ascsii中为我提供十六进制字符串

我真的不明白Python是怎么回事

如果我使用

f.write(data.encode("hex"))
Python将我的数据转换为十六进制字符串,因此在“hello”的情况下 我得到了字符串68656C6F

然而使用

f = open('file.dat', 'wb')
f.write("hello".encode("hex"))
f.close()
将只写入十六进制的ascii码。 赫克斯利也是如此。 我需要\00格式的十六进制,但似乎所有东西都希望在ascsii中为我提供十六进制字符串

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

现在,如果您使用的是Python3.x,那么每两个十六进制字符就有一个库名为binascii,用于在二进制和ASCII之间转换

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