1.編碼
讀取一個(gè)文件,然后對(duì)其進(jìn)行base64編碼,方便在web網(wǎng)絡(luò)訪問請(qǐng)求時(shí)進(jìn)行傳遞
import base64
def get_base64_encode(filename):
with open(filename, 'rb') as f:
return base64.b64encode(f.read())
2.解碼
def write_file_from_base64(filename, data):
with open(filename, 'wb') as f:
if not isinstance(data, bytes):
data = bytes(data)
f.write(base64.b64decode(data))
3.要說明的是
由于在python2.x中,字符串默認(rèn)不是以bytes類型的。在base64.b64encode方法進(jìn)行圖片編碼后。如果不對(duì)結(jié)果進(jìn)行bytes()轉(zhuǎn)換處理,在進(jìn)行base64.b64decode()解碼的時(shí)候,參數(shù)變成了普通的str類型。處理結(jié)果就會(huì)受到影響。而在python3中就不存在這樣的問題,因?yàn)閎ytes類型的字符串本身就沒有默認(rèn)轉(zhuǎn)為普通str類型的過程,而python2是有這個(gè)過程的,所以也是為什么我們要使用bytes進(jìn)行類型轉(zhuǎn)換這一過程的。