使用Python将十六进制写入文件

4

我正在尝试创建一堆包含对应十六进制值的二进制文件。

for i in range(2**8):
    file = open("test" + str(i) + ".bin", "wb")
    file.write(hex(i))
    file.close()

很遗憾,似乎将我的计数器的文本表示形式转换为十六进制后写入文件中,而不是实际的十六进制值。可以有人请修改这段代码吗?我相信问题在于 “hex(i)” 的部分。

2
好的,是的... hex(x) 的文档明确说明它返回一个字符串。http://docs.python.org/3/library/functions.html#hex 但是十六进制是一种表示形式:你想要写出该十六进制字符串的二进制表示形式吗?还是想要写出i的二进制表示形式? - Matt Ball
我猜你想要将i的二进制值而不是字面值写入文件? - Marcus
2
你需要使用struct.pack - John Lyon
1个回答

5
如果您想将值写成二进制,请使用chr()i创建字符:
for i in range(2**8):
    with open("test" + str(i) + ".bin", "wb") as f:
        f.write(chr(i))

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