我正在尝试创建一堆包含对应十六进制值的二进制文件。 for i in range(2**8): file = open("test" + str(i) + ".bin", "wb") file.write(hex(i)) file.close() 很遗憾,似乎将我的计数器的文本表示形式转换为十六进制后写入文件中,而不是实际的十六进制值。可以有人请修改这段代码吗?我相信问题在于 “hex(i)” 的部分。
如果您想将值写成二进制,请使用chr()从i创建字符:for i in range(2**8): with open("test" + str(i) + ".bin", "wb") as f: f.write(chr(i))
hex(x)
的文档明确说明它返回一个字符串。http://docs.python.org/3/library/functions.html#hex 但是十六进制是一种表示形式:你想要写出该十六进制字符串的二进制表示形式吗?还是想要写出i
的二进制表示形式? - Matt Ballstruct.pack
。 - John Lyon