python 二进制文件转文本文件_【Python】二进制文件与Base64编码文本文件转换

本文介绍了如何使用Python内置的base64模块和自定义方法进行二进制文件与Base64编码文本之间的转换。通过示例代码展示了文件的编码和解码过程,并解释了Base64编码的原理。
摘要由CSDN通过智能技术生成

前面的话

Python内置的base64模块,在这里http://docs.python.org/library/base64.html?highlight=base64#base64,包括b64encode,b64decode,urlsafe_b64decode等,可以满足包括URL在内的文本编码需要。但是在用base64.encode编码二进制文件的时候,发现编码不完整,只有部分文件被编码了,base64.decode解码出来文件错误。可能是base64模块用来出来文本的?仔细分析发现,是忘记用二进制模式打开文件了。但是,自己实现base64模块基本功能也不是什么难事,不是要重复发明轮子,仅作为学习python和base64的练习。

用内置 base64模块转换二进制文件与base64编码文本文件方法如下:import base64

fin = open(r"D:\2.zip", "rb")

fout = open(r"D:\2.x.txt", "w")

base64.encode(fin, fout)

fin.close()

fout.close()

fin = open(r"D:\2.x.txt", "r")

fout = open(r"D:\2.x.zip", "wb")

base64.decode(fin, fout)

fin.close()

fout.close()

Base64介绍

Base64是一种基于64个可打印字符来表示二进制数据的表示方法。Base64常用于在通常处理文本数据的场合,表示、传输、存储一些二进制数据。包括MIME的email,email

via MIME, 在XML中存储复杂数据。

转换的时候,将三个byte的数据,先后放入一个24bit的缓冲区中,先来的byte占高位。数据不足3byte的话,于缓冲区中剩下的bit用0补足。然后,每次取出6(因为)个bit,按照其值选择ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/中的字符作为编码后的输出。不断进行,直到全部输入数据转换完成。

如果最后剩下两个输入数据,在编码结果后加1个“=”;如果最后剩下一个输入数据,编码结果后加2个“=”;如果没有剩下任何数据,就什么都不要加,这样才可以保证资料还原的正确性。

Base64索引表:

ValueCharValueCharValueCharValueChar

0A16Q32g48w

1B17R33h49x

2C18S34i50y

3D19T35j51z

4E20U36k520

5F21V37l531

6G22W38m542

7H23X39n553

8

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值