zoukankan      html  css  js  c++  java
  • python模块之quopri: quotedprintable编解码

    转载自:http://blog.csdn.net/zhaoweikid/archive/2007/05/31/1633526.aspx

    quopri模块和base64模块有点象,都是用来编码和解码的,且base64和quoted-printable这两种编码都是在电子邮件中常见的编码。
    quoted-printable的编码方法为: 英文字符除了=以外不做处理,其他字符的编码为=加这个字符的两个字节的16进制数。行尾可用"=\r\n"。

    quopri模块只需要使用它的encode,decode,encodestring,decodestring就可以了,前面两个是对文件进行编解码的(也可以对StringIO中的数据编码解码),后面两个是对字符串进行编码解码的。

    看看下面的例子:

    #-*- encoding: gb2312 -*-
    import quopri

    = "only a test数据"
    = quopri.encodestring(a) # 对字符串编码
    print b
    print quopri.decodestring(b) # 对字符串解码

    import StringIO

    = StringIO.StringIO()
    = StringIO.StringIO()
    = 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()
  • 相关阅读:
    2014-11-1 NOIP模拟赛2
    洛谷P1014 Cantor表
    洛谷P1011 车站
    洛谷P1013 进制位
    2014-11-1 NOIP模拟赛1
    2017-9-20 NOIP模拟赛
    洛谷P2016 战略游戏
    洛谷P3182 [HAOI2016]放棋子
    2014-10-31 NOIP模拟赛
    洛谷P1736 创意吃鱼法
  • 原文地址:https://www.cnblogs.com/sislcb/p/1342826.html
Copyright © 2011-2022 走看看