python base64 模块

base64 是用任意64个字符来表示二进制数据的方法

1. base64.b64encode() # encode the bytes-like object using Base64 and return a bytes object 

import base64 # base64 encoding/decoding uses binascii
with open('./1.jpg','rb') as f:
    content = f.read()
print(type(content))
with open('./1.jpg','rb') as f:
    base64_b = base64.b64encode(f.read()) # encode the bytes-like object using Base64 and return a bytes object(a bytestring of base-64 data)
print(type(base64_b))
print(base64_b)

结果

<class 'bytes'>
<class 'bytes'>
b'/9j/4VBoRXhpZgAASUkqAAgAAAASAA4BAgAgAAAA5gAAAA8BAgAgAAAABgEAABABAgAgAAAAJgEAABIBAwABAAAAAQAAABoBBQABAAAARgEAABsBBQABAAAATgEAACgBAwABAAAAAgAAADEBAgAgAAAAVgEAADIBAgAUAAAAdgEAABMCAwABAAAAAgAAACACBAABAAAAAAAAACECBAABAAAAAAAAACICBAABAAAAAAAAACMCBAABAAAAAAAAACQCBAABAAAAAQAAACUCAgAgAAAAigEAAGmHBAABAAAAqgEAACWIBAABAAAALAMAAEUEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE9QUE8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAT1BQTyBBNTltAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABIAAAAAQAAAEgAAAABAAAATWVkaWFUZWsgQ2FtZXJhIEFwcGxpY2F0aW9uCgAAAAAyMDE2OjEyOjE3IDExOjEwOjEyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGQCaggUAAQAAANwCAACdggUAAQAAAOQCAAAiiAMAAQAAAAAAAAAniAMAAQAAAEAAAAAAkAcABAAAADAyMjADkAIAFAAAAOwCAAAEkAIAFAAAAAADAAABkQcABAAAAAECAwAEkgoAAQAAABQDAAAHkgMAAQAAAAIAAAAIkgMAAQAAAP8AAAAJkgMAAQAAAAAAAAAKkgUAAQAAABwDAACQkgIAAgAAADk4AACRkgIAAgAAADk4AACSkgIAAgAAADk4AAAAoAcABAAAADAxMDABoAMAAQAAAAEAAAACoAQAAQAAAEAQAAADoAQAAQAAADAMAAAFoAQAAQAAALsEAAACpAMAAQAAAAAAAAADpAMAAQAAAAAAAAAEpAUAAQAAACQDAAAGpAMAAQAAAAAAAAAAAAAAbAcAAEBCDwAWAAAACgAAADIwMTY6MTI6MTcgMTE6MTA6MTIAMjAxNjoxMjoxNyAxMToxMDoxMgAAAAAACgAAAF4BAABkAAAAZAAAAGQAAAAKAAAAAQAEAAAAAgIAAAEAAgACAAAATgAAAAIABQADAAAAqgMAAAMAAgACAAAARQAAAAQABQADAAAAwgMAAAUAAQABAAAAAAAAAAYABQABAAAA2gMAAAcABQADAAAA4gMAABsABwBAAAAA+gMAAB0AAgALAAAAOgQAAAAAAAAeAAAAAQAA

由结果知,在使用base64进行encode后得到的还是bytes类型,但使用的是64个字符的bytes

2. base64.decodebytes() # decode a bytestring of base-64 data into a bytes object

# decode
decode_content = base64.decodebytes(base64_b)
print(type(decode_content))
print(decode_content)

结果

<class 'bytes'>
b'\xff\xd8\xff\xe1PhExif\x00\x00II*\x00\x08\x00\x00\x00\x12\x00\x0e\x01\x02\x00 \x00\x00\x00\xe6\x00\x00\x00\x0f\x01\x02\x00 \x00\x00\x00\x06\x01\x00\x00\x10\x01\x02\x00 \x00\x00\x00&\x01\x00\x00\x12\x01\x03\x00\x01\x00\x00\x00\x01\x00\x00\x00\x1a\x01\x05\x00\x01\x00\x00\x00F\x01\x00\x00\x1b\x01\x05\x00\x01\x00\x00\x00N\x01\x00\x00(\x01\x03\x00\x01\x00\x00\x00\x02\x00\x00\x001\x01\x02\x00 \x00\x00\x00V\x01\x00\x002\x01\x02\x00\x14\x00\x00\x00v\x01\x00\x00\x13\x02\x03\x00\x01\x00\x00\x00\x02\x00\x00\x00 \x02\x04\x00\x01\x00\x00\x00\x00\x00\x00\x00!\x02\x04\x00\x01\x00\x00\x00\x00\x00\x00\x00"\x02\x04\x00\x01\x00\x00\x00\x00\x00\x00\x00#\x02\x04\x00\x01\x00\x00\x00\x00\x00\x00\x00$\x02\x04\x00\x01\x00\x00\x00\x01\x00\x00\x00%\x02\x02\x00 \x00\x00\x00\x8a\x01\x00\x00i\x87\x04\x00\x01\x00\x00\x00\xaa\x01\x00\x00%\x88\x04\x00\x01\x00\x00\

解码后结果是bytes类型,正常的二进制数据

猜你喜欢

转载自blog.csdn.net/ruguowoshiyu/article/details/80223446
今日推荐