Python中字符串的解压缩

今天在用Streaming-Python处理一个MapReduce程序时,发现reducer失败,原因为耗费内存达到极限了!仔细查看代码时,发现有一个集合里保存着URL,而URL长度是比较长的,直接保存确实是耗费内存,于是想到用压缩存储,然后用的时候再解压,虽然处理时间增加,但是耗费内存大大降低!

具体就是使用zlib模块

import zlib

raw_data = "hello,world,ooooooooooooxxxxxxxxxxx"
zb_data = zlib.compress(raw_data)

print "len(raw_data)=%d, len(zb_data)=%d, compression ratio=%.2f"      % (len(raw_data), len(zb_data), float(len(zb_data))/len(raw_data))

# len(raw_data)=35, len(zb_data)=25, compression ratio=0.71
raw_data2 = zlib.decompress(zb_data)
print raw_data2

参考:http://my.oschina.net/1123581321/blog/176570

时间: 2024-10-10 23:33:20

Python中字符串的解压缩的相关文章

python中字符串链接的七种方式

一. str1+str2 string类型 '+'号连接 >>> str1="one" >>> str2="two" >>> str1+str2 'onetwo' >>>注意:该方式性能较差,因为python中字符串是不可变的类型,使用 + 连接两个字符串时会生成一个新的字符串,生成新的字符串就需要重新申请内存,当连续相加的字符串很多时(a+b+c+d+e+f+...) ,效率低下就是必然的了例

Python中字符串查找效率比较

Python中字符串查找方式有多种,常见的有re.match/search or str.find 用一个例子来说明各种方式的效率如下: from timeit import timeit import re def find(string, text): if string.find(text) > -1: pass def re_find(string, text): if re.match(text, string): pass def best_find(string, text): i

Python中字符串的有趣玩法

反转一个字符串 >>> S = 'abcdefghijklmnop' >>> S[::-1] 'ponmlkjihgfedcba' 这种用法叫做three-limit slices 除此之外,还可以使用slice对象,例如 >>> 'spam'[slice(None, None, -1)] >>> unicode码与字符(single-character strings)之间的转换 >>> ord('s') # or

python中字符串拼接

python中字符串拼接的三种方式: 1.使用 '+': 这中方式会在内存中,没使用一次就开辟一个新的空间,不建议使用.当数据庞大时候效率很低.后期有垃圾回收机制来处理没有用的字符串 案例:name = 'jam' name1 = name + 'c'这样内存中会开辟一个空间存放 name2 = name1 + 'h''这样内存中会再开辟一个空间存放 2.字符串格式化的形式:%s,这中方式让内存最多就开辟两个空间来进行存放字符. 案例:name = 'jam' name2 = 'chen' se

Python中字符串的操作

在python中字符串的包围的引号有三种,单引号,双引号,三引号,其中,单引号和双引号完全相同,在python中单引号也可完成转义工作 >>>print('doesn\'t \n it?') doesn't it? 但经常性的,一般使用 单双引号+转义更为普遍 >>>print("doesn't \n it?") doesn't  it? 三引号的使用,三引号(三个单引号或者三个双引号)用来座位注释,文档说明,类描述,用于比较广泛,他可以包含单引号,

Python中字符串的表示

区别于其他语言,python中字符串可以用3中方法表示,且都能被正确编译: 1.'mary' 单引号括起来 2."it's a great day" 双引号括起来 3.''' nice to meet you, my dear friend. '''   三引号括起来 区别: a.单引号和双引号没有什么区别,不过单引号不用按shift,打字稍微快一点.表示字符串的时候,单引号里面可以用双引号,而不用转义字符,反之亦然. b.如果直接用单引号括住单引号,需要转义字符,像这样:'it\'s

python中字符串的操作方法

python中字符串的操作方法大全 更新时间:2018年06月03日 10:08:51 作者:骏马金龙 我要评论这篇文章主要给大家介绍了关于python中字符串操作方法的相关资料,文中通过示例代码详细介绍了关于python中字符串的大小写转换.isXXX判断.填充.子串搜索.替换.分割.join以及修剪:strip.lstrip和rstrip的相关内容,需要的朋友可以参考下 前言 python中字符串对象提供了很多方法来操作字符串,功能相当丰富.?123 print(dir(str)) [...

python中字符串的几种表达方式(用什么方式表示字符串)

说明: 今天在学习python的基础的内容,学习在python中如何操作字符串,在此记录下. 主要是python中字符串的几种表达,表示方式. python的几种表达方式 1 使用单引号扩起来字符串 >>> 'my python lession' #以单引号将字符串扩起来 'my python lession' >>> a = 'my python lession' >>> print(a) my python lession 2 使用双引号将字符串扩

python中字符串操作大全

前段时间,闲的蛋疼,重新整理了一下python的学习资料,现在把整理的python中字符串操作分享出来,方便自己和大家今后查询 a = 'SUNW ukong 123456' #print(a.capitalize())      #字符串首字母变成大写 #print(a.casefold())        #将字符串中的大写字母全部变成小写字母 #print(a.center(50,'-'))    #将字符串居中显示,总共50个字符,如果字符串的长度不够50个字符,就在字符串两边补齐‘-’