Python将十六进制写入文件

时间:2013-07-10 16:59:15

标签: python python-3.x

我正在使用Python 3,我希望能够将hex写入这样的文件,但我无法使其工作。这给了我一个TypeError,如果对它进行编码,则输出到文件是不正确的。

junk = '\x90' * 5
junk += '\xcc' * 5

fo = open("foo.list", "wb")

fo.write(junk)
fo.close()

这给了我type error, str doesn't support the buffer interface,如果我这样做

junk = '01BDF23A'
junk += '90' * 5
junk += 'cc' * 5


fo = open("foo3.m3u", "wb")
fo.write(binascii.unhexlify(junk))
fo.close()

它有效,但我想将它们定义为十六进制(\ x90),任何想法?

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:3)

在Python 3中,如果您尝试write str,则必须明确指定编码。你要写的是字节文字(参见python 2 to 3 guide),所以改变代码实际使用字节文字

junk = b'\x90' * 5
junk += b'\xcc' * 5

fo.write(junk)