【发布时间】:2014-03-07 19:26:42
【问题描述】:
我正在编写一个 python 脚本,它打开一个文件并读取两个字符串值,例如32 或 6 楼。然后应该将该值作为单个字节以十六进制格式写入二进制文件,例如0x32 或 0x6f。
file_in = open('32.xml')
file_contents = file_in.read()
file_in.close()
file_out = open('testfile', 'wb')
file_out.write(file_contents)
file_out.close()
在本例中,32.xml 是一个包含字符串“32”的纯文本文件。但是 testfile 输出文件的内容是 '32' 而不是 0x32(或只是 2)。
我已经尝试了 write 命令的各种变体。我尝试了 chr() 函数,但这需要将字符串转换为 int。
file_out.write(chr(int(file_contents)))
这最终写入了字符串的十六进制值,而不是我想要的。只要你有一个包含 a-f 的值,它也会失败。
我也试过了
file_out.write('\x' + file_contents)
但 python 解释器不喜欢这样。
【问题讨论】:
标签: python string binary hex byte