我有一个用例,我从数据库中获取blob,我必须将其转换为二进制文件。 Python将其存储为字符串,尽管它实际上是字节。当我尝试写为二进制时,我得到一个类型错误,str不被接受。
我写了一些示例代码来重现变量的样子。我见过其他语言的示例代码,这个任务很简单。使用python 3帮助解决这个问题将不胜感激。这可能是我想念的一件非常简单的事情,我无法在网上找到答案。
import binascii
f = open('test.xlsx', 'rb')
content = binascii.hexlify(f.read())
f.close
output = content.decode("utf-8")
#output2 = hex(int(output, 16))
f = open('temp', 'wb')
f.write(output) #TypeError: a bytes-like object is required, not 'str'
f.close()
#Convert back to type bytes and recreate the file
答案 0 :(得分:0)
你可以写:
f.write(bytearray(output,"utf-8"))
而不是:
f.write(output) #TypeError: a bytes-like object is required, not 'str'
解决问题。虽然它似乎不是最狡猾的方式。