我正在使用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),任何想法?
提前感谢您的帮助!
答案 0 :(得分:3)
在Python 3中,如果您尝试write
str
,则必须明确指定编码。你要写的是字节文字(参见python 2 to 3 guide),所以改变代码实际使用字节文字
junk = b'\x90' * 5
junk += b'\xcc' * 5
fo.write(junk)