Python base64模块基本概念总结

开发 后端
Python base64模块主要是用来作为base64编码解码的操作。我们会在这篇文章中对这一应用方式做一个详细介绍,以方便大家理解。

Python编程语言中有很多比较有用的模块可以供我们在实际应用中获得一些帮助。比如今天为大家介绍的Python base64模块,就是其中一个比较重要的模块。在这里我们会针对这一模块的基本概念做一个详细介绍。

Python base64模块是用来作base64编码解码的。这种编码方式在电子邮件中是很常见的。它可以把不能作为文本显示的二进制数据编码为可显示的文本信息。编码后的文本大小会增大1/3。

最简单的加解密实例

  1. import base64  
  2. str1 = 'djhui' 
  3. str2 = base64.b64encode(str1)  
  4. str3 = base64.b64decode(str2) 

闲话不说了,Python base64模块真正用的上的方法只有8个,分别是encode, decode, encodestring, decodestring, b64encode,b64decode, urlsafe_b64decode,urlsafe_b64encode。他们8个可以两两分为4组,encode,decode一组,专门用来编码和 解码文件的,也可以对StringIO里的数据做编解码;encodestring,decodestring一组,专门用来编码和解码字符串; b64encode和b64decode一组,用来编码和解码字符串,并且有一个替换符号字符的功能。

这个功能是这样的:因为base64编码后的字符除 了英文字母和数字外还有三个字符 + / =, 其中=只是为了补全编码后的字符数为4的整数,而+和/在一些情况下需要被替换的,b64encode和b64decode正是提供了这样的功能。至于什 么情况下+和/需要被替换,最常见的就是对url进行base64编码的时候。urlsafe_b64encode和urlsafe_b64decode 一组,这个就是用来专门对url进行base64编解码的,实际上也是调用的前一组函数。

下面看看Python base64模块的例子:

  1. #-*- encoding:gb2312 -*-  
  2. import base64  
  3. import StringIO  
  4. a = "this is a test" 
  5. b = base64.encodestring(a) # 对字符串编码  
  6. print b  
  7. print base64.decodestring(b) # 对字符串解码  
  8. c = StringIO.StringIO()  
  9. c.write(a)  
  10. d = StringIO.StringIO()  
  11. e = StringIO.StringIO()  
  12. c.seek(0)  
  13. base64.encode(c, d) # 对StringIO内的数据进行编码  
  14. print d.getvalue()  
  15. d.seek(0)  
  16. base64.decode(d, e) # 对StringIO内的数据进行解码  
  17. print e.getvalue()  
  18. a = "this is a +test" 
  19. b = base64.urlsafe_b64encode(a) # 进行url的字符串编码  
  20. print b  
  21. print base64.urlsafe_b64decode(b) 

上面的encode函数和decode函数的参数其实还可以是文件对象的,那的象这样:

  1. f1 = open('aaa.txt', 'r')  
  2. f2 = open('bbb.txt', 'w')  
  3. base64.encode(f1, f2)  
  4. f1.close()  
  5. f2.close() 

以上就是我们为大家介绍的Python base64模块相关概念。

【编辑推荐】

  1. Python取得文件列表基本应用方式浅谈
  2. Python抓取网页内容应用代码分析
  3. Python编码规范基本内容简介
  4. Python调用MySql存储过程基本应用方式解读
  5. 第三方Python库基本概念简述
责任编辑:曹凯 来源: 博客园
相关推荐

2012-09-11 14:39:03

Moosefs

2009-12-21 10:27:52

WCF基本概念

2023-11-07 08:35:26

2017-02-20 23:12:16

Flexbox

2011-03-28 11:05:17

ODBC

2016-12-13 13:50:06

JAVA转换Base64

2014-04-16 15:11:19

Spark

2009-03-20 11:46:10

MGCP协议网关

2021-02-05 05:26:33

字节ASCII控制

2010-03-17 17:54:51

Python语法

2012-12-03 17:12:10

HDFS

2010-08-23 16:58:17

DHCP协议

2010-07-12 09:43:38

Symbian开发

2010-07-07 15:17:40

LDAP协议

2009-08-18 10:34:31

Java入门基本概念

2011-07-19 13:44:39

JavaScript

2014-02-20 10:28:28

JavaScriptBase64

2009-12-29 18:29:09

Silverlight

2010-02-23 16:32:29

WCF服务

2017-04-07 10:19:22

交易支付概念
点赞
收藏

51CTO技术栈公众号