我需要将图像(或任何文件)转换为base64字符串。我使用不同的方法,但结果总是byte
,而不是字符串。例如:
import base64
file = open('test.png', 'rb')
file_content = file.read()
base64_one = base64.encodestring(file_content)
base64_two = base64.b64encode(file_content)
print(type(base64_one))
print(type(base64_two))
返回的
<class 'bytes'>
<class 'bytes'>
如何获取字符串,而不是字节? Python 3.4.2。
答案 0 :(得分:16)
Base64是一个ascii编码,因此您只需使用ascii
进行解码即可>>> import base64
>>> example = b'\x01'*10
>>> example
b'\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01'
>>> result = base64.b64encode(example).decode('ascii')
>>> print(repr(result))
'AQEBAQEBAQEBAQ=='
答案 1 :(得分:1)
我需要在文件中编写base64文本...
然后不要再担心字符串了,而只是这样做。
with open('output.b64', 'wb'):
write(base64_one)