用户工具

站点工具


modules:quopri

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

modules:quopri [2011/05/03 08:04] (当前版本)
行 1: 行 1:
 +====== python模块之quopri:​ quoted-printable编解码 ======
 +
 +quopri模块和base64模块有点象,都是用来编码和解码的,且base64和quoted-printable这两种编码都是在电子邮件中常见的编码。
 +
 +quoted-printable的编码方法为:​ 英文字符除了=以外不做处理,其他字符的编码为=加这个字符的两个字节的16进制数。行尾可用"​=\r\n"​。
 +
 +quopri模块只需要使用它的encode,​decode,​encodestring,​decodestring就可以了,前面两个是对文件进行编解码的(也可以对StringIO中的数据编码解码),后面两个是对字符串进行编码解码的。
 +
 +看看下面的quopri应用的例子:
 +
 +<code python>
 +#-*- encoding: gb2312 -*-
 +import quopri
 +
 +a = "only a test数据"​
 +b = quopri.encodestring(a) # 对字符串编码
 +print b
 +print quopri.decodestring(b) # 对字符串解码
 +
 +import StringIO
 +
 +c = StringIO.StringIO()
 +d = StringIO.StringIO()
 +e = StringIO.StringIO()
 +
 +c.write(a)
 +c.seek(0)
 +
 +quopri.encode(c,​ d, 0)  # 编码StringIO中的数据,​ 第三个参数0表示不对空格和tab符号编码,为1表示进行编码
 +print d.getvalue()
 +d.seek(0)
 +quopri.decode(d,​ e)  # 解码StringIO中的数据
 +print e.getvalue()
 +
 +f1 = open("​aaa.txt",​ "​w"​)
 +f1.write(a)
 +f1.close()
 +
 +f1 = open("​aaa.txt",​ "​r"​)
 +f2 = open("​bbb.txt",​ "​w"​)
 +
 +quopri.encode(f1,​ f2, 0) # 编码aaa.txt中的数据到bbb.txt
 +
 +f1.close()
 +f2.close()
 +
 +print open("​bbb.txt",​ "​r"​).read()
 +</​code>​
 +===== 参考 =====
 +  * http://​blog.csdn.net/​zhaoweikid/​archive/​2007/​05/​31/​1633526.aspx
 +
  
modules/quopri.txt · 最后更改: 2011/05/03 08:04 (外部编辑)