python的base64模块是用来做base64编码解码,常用于小型数据传输。编码后的数据是一个字符串,包括a-z,A-Z,/,+共64个字符。
1.base64
Base64是一种用64个字符来表示任意二进制数据的方法。

这样长度为3个字节的数据经过base64编码就变成为4个字节。
例如: 字符串"Xue"经过base64编码后变为"WHVI"。

如果数据的字节数不是3的倍数,则其位数不是6的倍数,那么需要就不能精确地划分成6位的块。此时,需要在原数据后面添加1个或者2个零值字节,使其字节数是三的倍数。
例如:字符串"Xu"经过Base64编码后变为"WHU="

2.base64常用API
| 方法 | 说明 |
|---|---|
| encode,decode | 专门用来编码和解码文件的,也可以对·StringIO里的数据做编解码 |
| encodestring,decodestring | 用来编码和解码字符串 |
| b64encode,b64decode | 用来编码和解码字符串 |
| urlsafe_b64encode,urlsafe_b64decode | 用来对url进行base64编解码 |
实例:
# -*- coding: utf-8 -*-
# @Time : 2022/4/23 22:51
# @File : base64demo.py
# @Software : PyCharm
import base64
# 图片转base64字符串
def path2base64(path):
with open(path, "rb") as f:
byte_data = f.read()
base64_str = base64.b64encode(byte_data).decode("ascii") # 二进制转base64
return base64_str
str = "i love programing".encode()
# 对字符串进行编码
bs4str = base64.b64encode(str)
# 输出编码后的字符串
print(bs4str)
# 输出还原编码后的字符串
print(base64.b64decode(bs4str))
str = "https://www.simoniu.com".encode("utf-8")
# 对url进行编码
urlstr = base64.urlsafe_b64encode(str)
# 输出url编码后的字符串
print(urlstr)
# 还原编码后的字符串
print(base64.urlsafe_b64decode(urlstr))
base64_img = path2base64("logo.png")
print(base64_img)
运行结果:
b'aSBsb3ZlIHByb2dyYW1pbmc='
b'i love programing'
b'aHR0cHM6Ly93d3cuc2ltb25pdS5jb20='
b'https://www.simoniu.com'
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4OVsiEhpkabcLShZ8HTyhOWsx+m8z3LWo5MnBA3DM2QrQksq1CNLFmr0veOQW+R72QKRCFURqmKwCGZgHOWJgVfLchBW42fZ2tqLXY7KWqgsgbt5wum8hxclMkI1qtCIK9SjCjVboRJZIjEYhFASyoKj7zJ6PmM1T+j6jDz4tRPossJdJzeBWCKsiWhE8TCj+0F+0TWhRmqIghBpUQSqeBZ4jqXaAlsa2woCazmx/FIl94Ek9FjKu2vKl8EVI66ko6Xb4MBs5JjvB6x5Kb+b8k0sIzeUhkQACSAKBKGiltXQZT46yc72HqyoBASPCoIWJ+qDQdUgMlLrnFFpygiIF69J6aRa+LfXwqCCIB6sWmKN6NqOyphgBZZFOS7CRYJgVNBRPMrw/SDnPI8JvRi4i2coBFWKs8PBuZAgZUIyCBbD06fnOvc/d6hnO+TLTewDRuValaIyVV0bsEiSgsoIYl33zBelDXeOJfjBx1XoyFmRglGIVOiH/mMP/+3MKdssPuP4gkFuVmVCy9pEhpm+cCBUihl4MVE/TwtrT0SR4SeWw2AiWDGJHe/fxR/8mbOFCcqXIfwFyIdRY0WKQUS1jHwBfjTkPwkeCoV1yvoKoFyYIIqIoW6rtzn6X7S+hS3dxAvyx4KGCPlNUSaK/30op1JGnvATngFQghTP1PK1kANgWA0qfxlF9d8zSL/jOgWc2x65AQCDRIHwGoXXKrxChW2KFru2nzjwUQ6F86gqGjSo55gG/YYGvUcw9yZZkgVVEp+sxfO2R24oNaZkBKpEEwoTipoh+P8vEoPcEkCDqgZOH144tbh1bGJoIL9x3b0A/C9ZYyczVx3dhQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxOS0wMS0wOVQwMjo1MTo0MyswODowMFBU3TYAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTktMDEtMDlUMDI6NTE6NDMrMDg6MDAhCWWKAAAAQ3RFWHRzb2Z0d2FyZQAvdXNyL2xvY2FsL2ltYWdlbWFnaWNrL3NoYXJlL2RvYy9JbWFnZU1hZ2ljay03Ly9pbmRleC5odG1svbV5CgAAABh0RVh0VGh1bWI6OkRvY3VtZW50OjpQYWdlcwAxp/+7LwAAABh0RVh0VGh1bWI6OkltYWdlOjpIZWlnaHQAMjU26cNEGQAAABd0RVh0VGh1bWI6OkltYWdlOjpXaWR0aAAyNTZ6MhREAAAAGXRFWHRUaHVtYjo6TWltZXR5cGUAaW1hZ2UvcG5nP7JWTgAAABd0RVh0VGh1bWI6Ok1UaW1lADE1NDY5NzM1MDPEQMkBAAAAEnRFWHRUaHVtYjo6U2l6ZQA0NDYxOUKcBWvoAAAAYnRFWHRUaHVtYjo6VVJJAGZpbGU6Ly8vaG9tZS93d3dyb290L25ld3NpdGUvd3d3LmVhc3lpY29uLm5ldC9jZG4taW1nLmVhc3lpY29uLmNuL2ZpbGVzLzExMi8xMTI4MjYxLnBuZ3081h8AAAAASUVORK5CYII=
我们将logo.png图片转换为base64字符串后,大家可以到以下网站测试base64转图片的效果。
https://tool.jisuapi.com/base642pic.html
小结: Base64是一种任意二进制到文本字符串的编码方法,常用于在URL、Cookie、网页中传输少量二进制数据。