python压缩数据数组长度_python – 如何解压缩字节数组中的gzipped数据?
zlib.decompress(data,15 32)应该自动检测是否有gzip数据或zlib数据.
zlib.decompress(data,15 16)应该工作,如果gzip和barf如果zlib.
这里是Python 2.7.1,创建一个gz文件,读回来,并解压缩它:
>>> import gzip, zlib
>>> f = gzip.open('foo.gz', 'wb')
>>> f.write(b"hello world")
11
>>> f.close()
>>> c = open('foo.gz', 'rb').read()
>>> c
'\x1f\x8b\x08\x08\x14\xf4\xdcM\x02\xfffoo\x00\xcbH\xcd\xc9\xc9W(\xcf/\xcaI\x01\x00\x85\x11J\r\x0b\x00\x00\x00'
>>> ba = bytearray(c)
>>> ba
bytearray(b'\x1f\x8b\x08\x08\x14\xf4\xdcM\x02\xfffoo\x00\xcbH\xcd\xc9\xc9W(\xcf/\xcaI\x01\x00\x85\x11J\r\x0b\x00\x00\x00')
>>> zlib.decompress(ba, 15+32)
Traceback (most recent call last):
File "", line 1, in
TypeError: must be string or read-only buffer, not bytearray
>>> zlib.decompress(bytes(ba), 15+32)
'hello world'
>>>
Python 3.x的使用将非常相似.
基于您正在运行Python 2.2.1的注释更新.
叹.这甚至不是Python 2.2的最后一个版本.反正继续上面创建的foo.gz文件:
Python 2.2.3 (#42, May 30 2003, 18:12:08) [MSC 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> strobj = open('foo.gz', 'rb').read()
>>> strobj
'\x1f\x8b\x08\x08\x14\xf4\xdcM\x02\xfffoo\x00\xcbH\xcd\xc9\xc9W(\xcf/\xcaI\x01\x00\x85\x11J\r\x0b\x00\x00\x00'
>>> import zlib
>>> zlib.decompress(strobj, 15+32)
Traceback (most recent call last):
File "", line 1, in ?
zlib.error: Error -2 while preparing to decompress data
>>> zlib.decompress(strobj, 15+16)
Traceback (most recent call last):
File "", line 1, in ?
zlib.error: Error -2 while preparing to decompress data
# OK, we can't use the back door method. Plan B: use the
# documented approach i.e. gzip.GzipFile with a file-like object.
>>> import gzip, cStringIO
>>> fileobj = cStringIO.StringIO(strobj)
>>> gzf = gzip.GzipFile('dummy-name', 'rb', 9, fileobj)
>>> gzf.read()
'hello world'
# Success. Now let's assume you have an array.array object-- which requires
# premeditation; they aren't created accidentally!
# The following code assumes subtype 'B' but should work for any subtype.
>>> import array, sys
>>> aaB = array.array('B')
>>> aaB.fromfile(open('foo.gz', 'rb'), sys.maxint)
Traceback (most recent call last):
File "", line 1, in ?
EOFError: not enough items in file
#### Don't panic, just read the fine manual
>>> aaB
array('B', [31, 139, 8, 8, 20, 244, 220, 77, 2, 255, 102, 111, 111, 0, 203, 72, 205, 201, 201, 87, 40, 207, 47, 202, 73, 1, 0, 133, 17, 74, 13, 11, 0, 0, 0])
>>> strobj2 = aaB.tostring()
>>> strobj2 == strobj
1 #### means True
# You can make a str object and use that as above.
# ... or you can plug it directly into StringIO:
>>> gzip.GzipFile('dummy-name', 'rb', 9, cStringIO.StringIO(aaB)).read()
'hello world'
python压缩数据数组长度_python – 如何解压缩字节数组中的gzipped数据?相关推荐
- python 二维数组 长度_Python创建二维数组的正确姿势
↑↑↑点击上方"蓝字",关注"极客猴" 如果你喜欢极客猴,可以把我置顶或加为星标 题图:by watercolor.illustrations from Ins ...
- C#用Zlib压缩或解压缩字节数组
/// <summary>/// 复制流/// </summary>/// <param name="input">原始流</param& ...
- 数组-接口2-参数为一个整型数组和数组长度的整数(该数组输入和运算结果),再加一个整数;预期结果是一个整型数组
测试接口的代码说明 适用接口:参数为一个整型数组和数组长度的整数(该数组输入和运算结果),再加一个整数:预期结果是一个整型数组 测试接口的具体代码如下: 注意红色字体,用后续小节中的接口进行替换,进行 ...
- php读取数组长度,PHP count():获取数组长度
PHP count() 函数用来获取数组长度,也即计算数组元素的个数.另外,count() 函数还可以统计对象中的属性个数. count() 语法如下: int count ( mixed $arr ...
- 提升: 建立一个如下的学生情况表,要求先依次输入学生数据元素,然后依次显示当前表中的学生数据元素。 学号 姓名 性别 年龄 2000001 张三 男 20 2000002
提升: 建立一个如下的学生情况表,要求先依次输入学生数据元素,然后依次显示当前表中的学生数据元素. 学号 姓名 性别 年龄 2000001 张三 男 20 2000002 李四 男 21 200000 ...
- java 如何操作字节数组_实例解析Java字节数组操作模式代码
字节数组的关键是它为存储在这部分内存中的每个8位值提供索引(快速)和精确的原始访问,并且您可以操纵这些字节来控制每个位.缺点是计算机只将每个条目视为一个独立的8位数字--这可能是您的程序正在处理的,或 ...
- python获取数组长度_Python返回数组(List)长度的方法
原博文 2016-03-16 11:53 − 其实很简单,用len函数: >>> array = [0,1,2,3,4,5]>>> print len(array) ...
- python 查找二维数组长度_Python二维数组中的查找
对于在一个每一行从左到右依次递增,每一列从上到下依次递增的二维数组查找一个元素,可以选择从数组左上角开始查找arrayi,如果目标元素大于arrayi,i+=1,如果元素小于arrayi,j-=1,依 ...
- python 随机获取数组元素_Python创建二维数组的正确姿势
List (列表)是 Python 中最基本的数据结构.在用法上,它有点类似数组,因为每个列表都有一个下标,下标从 0 开始.因此,我们可以使用 list[1] 来获取下标对应的值.如果我们深入下列表 ...
最新文章
- 正则表达式语法规则收集
- ffmpeg m4a 转pcm_FFmpeg提取视频音频python将音频转文字
- Nature调查:读博难,在中国读博难上加难
- 为什么租号玩显示服务器忙,租号玩上号器怎么用,租号玩上号器使用教程
- [ Android 五种数据存储方式之二 ] —— 文件存储数据
- Springboot里输出的html里包含script标签页会怎样
- 高职院校计算机基础课程要求,浅谈高职院校计算机的应用基础课程的改革.doc...
- idea cloud bootstrap是啥_application.yml与bootstrap.yml的区别
- linux从别的主机下载,从局域网内的其他Linux主机下载文件
- Windows 下音频数据采集和播放
- UCSD COGS108 数据科学实战中文笔记·翻译完成
- python middleware模块_python之auth模块
- 现代的 “Hello, World”,可不仅仅是几行代码而已
- 漫画:分布式缓存服务器扛不住了怎么办?| 技术头条
- 阿里小姐姐工作7年,P6升P7无望,欲去当培训师
- 名师出高徒!请关注领英上这十位活跃的大神
- 想要走上巅峰?练好演讲也是必不可少的技能
- 量化金融入门笔记(一)
- C语言:变量存储类别
- CCF GAIR2018大会,100位全球人工智能大佬在深圳期待你的到来!