【问题标题】:Using python to write hex to file使用python将十六进制写入文件
【发布时间】:2013-01-07 17:30:35
【问题描述】:

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

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

不幸的是,我的计数器转换为十六进制的文本表示正在写入文件,而不是实际的十六进制值。有人可以更正此代码吗?我确定问题出在hex(i)

【问题讨论】:

  • 嗯,是的...hex(x) 文档特别说它返回一个字符串。 docs.python.org/3/library/functions.html#hex 但是十六进制是一种表示:你想写那个十六进制字符串的二进制表示吗?还是i的二进制表示?
  • 我想你想将 i 的二进制值而不是 i 的字面值写入文件?
  • 你会想要使用struct.pack

标签: python file encoding hex


【解决方案1】:

如果您希望将值写入二进制,请使用 chr()i 创建字符:

for i in range(2**8):
    with open("test" + str(i) + ".bin", "wb") as f:
        f.write(chr(i))

【讨论】:

    猜你喜欢
    • 2013-07-11
    • 2015-08-22
    • 2014-03-16
    • 2015-01-03
    • 2011-12-22
    • 1970-01-01
    • 1970-01-01
    • 2021-10-27
    • 2013-05-03
    相关资源
    最近更新 更多