将hexlifyed内容附加到文件

时间:2015-01-13 20:24:34

标签: python python-3.x

file_1 = ('test.png')
with open(file_1, 'rb') as b:
    file_hex = b.read()    
binascii.hexlify(file_hex)
file_1_size = len(file_hex)
print (file_1_size)

file_new = open("test.tp", "a")
file_new.write(binascii.hexlify(file_hex))
file_new.close()

我一直试图将这个通知内容附加到文件中。我甚至尝试将hexlifyed内容应用于自己的变量。像这样,

file_1 = ('test.png')
with open(file_1, 'rb') as b:
    file_hex = b.read()    
x = binascii.hexlify(file_hex)
file_1_size = len(file_hex)
print (file_1_size)

file_new = open("test.tp", "a")
file_new.write(x)
file_new.close()

两者都以错误结束

TypeError: must be str, not bytes

1 个答案:

答案 0 :(得分:1)

以二进制模式打开文件以附加字节:

with open("test.tp", "ab") as file_new:
    file_new.write(x)

或首先将字节解码为字符串:

with open("test.tp", "a") as file_new:
    file_new.write(x.decode('ascii')

十六进制数字属于ASCII码范围,因此使用该编解码器进行解码是安全的。