19. Python2.7 gzip压缩与解压的问题

1:python2.7 有一个很让人难受的特性,那就是经过其方法处理的数据,有可能原来是Str类型结果变成了unicode

2:大家注意我画出来的红色的部分,如果你发现你的代码完全正确却解压失败压缩失败,很可能在红色部分你传入的不是

     String类型,而是unicode类型,在这里说一下我遇到的问题:在实际生产中,我另一个查询数据库的程序

  c_Data=SearchTable.TableClass().searchCsvString("e_cdr_20181228")  c_Data是这个程序返回的数据,我用的是 “+”拼接的数据,纳希冉而言我就以为是String了,于是直接调用了gzip_compress(c_data) 结果报错,检查本田没发现程序有问题,最后定位到数据,果然我type(c_Data) 是unicode类型,此时就简单了   gzip_compress(str(c_data))  大功告成。

3:以上是在py2.7开发遇到的问题,因为公司需要,没用py3+版本


                                 
1:第一种:

 with gzip.open('file.txt.gz', 'wb',compresslevel=1) as f:
    f.write(str("传入的的字符串,这个字符串会被压缩到file.txt.gz里面"))
  with gzip.open("file.txt.gz","rb") as read:
#这个是从file.txt.gz中读取你的压缩数据
     print read.read()


第二种
#这次压缩的数据写入了buffer里面,因为是及处理的时候我们不一定每次都压缩方到文件里
#有时候放入buffer里面就直接进行网络传输了。
def gzip_compress(c_data):
    buf = StringIO()
    try:
        with gzip.GzipFile(mode='wb', fileobj=buf) as f:
            f.write(c_data)
        return  buf.getvalue()
    except Exception as e:
        print ("compress wrong"+e)
    finally:
        f.close()


def gzip_uncompress(c_data):
    try:
        buf = StringIO(c_data)
        with gzip.GzipFile(mode='rb', fileobj=buf) as f:
            return f.read()
    except Exception as  e:
        print("uncompress wrong"+e)
    finally:
        f.close()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我先森

鼓励一个吧,哈哈

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值