一、Base64 简介
base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,大家可以查看RFC2045~RFC2049,上面有完整的定义。Base64编码可用于在HTTP环境下传递较长的标识信息。例如,在Java Persistence系统Hibernate中,就采用了Base64来将一个较长的唯一标识(一般为128-bit的UUID)编码为一个字符串以便传输。
二、文件转换为 Base64
如何将文件转换为Base64格式呢?
import base64 def file_to_base64(filepath): with open(filepath, 'rb') as file: base64_data = base64.b64encode(file.read()) return base64_data.decode('utf-8')
上述代码使用了Python自带的base64库,以二进制模式读取文件并转换为base64格式。其中,decode('utf-8')是为了将byte类型转换为string类型。
三、Base64 转换为文件
如何将Base64格式的文件转换为文件呢?
import base64 def base64_to_file(base64_data, filepath): with open(filepath, 'wb') as file: file.write(base64.b64decode(base64_data))
上述代码使用了Python自带的base64库,将Base64格式的文件解码为二进制流,并写入到指定的文件中。
四、Base64 转换为 Image
如何将Base64格式的图片转换为Image对象呢?
from PIL import Image import io import base64 def base64_to_image(base64_data): image_data = base64.b64decode(base64_data) image = Image.open(io.BytesIO(image_data)) return image
上述代码使用了Python的PIL库将Base64格式的图片转换为Image对象。注意,需要将二进制流转换为io流,然后再用Image.open打开。
五、总结
本文介绍了文件流转Base64的主要实现方式,包括文件转Base64,Base64转文件以及Base64转Image。在实际开发中,这些功能经常被用来实现图片上传、表单数据提交等功能,对于Web开发来说非常重要。