通常用gzip压缩过的云端数据需要做解压处理,以下代码主要用python3实现对获取到的云端gzip压缩数据进行还原。

# -*- coding: utf-8 -*-
"""
Spyder Editor
This is a temporary script file.
""" #! /usr/bin/env python3.6 import requests
import gzip def main():
url = 'http://127.0.0.1:801/health/index.php/mobile/test/getBanners'
data = {'test': 'data'}
headers ={"User-agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:36.0) Gecko/20100101 Firefox/36.0",
"Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
#"Accept-Language":"en-US,en;q=0.5",
"Accept-Encoding":"gzip, deflate",
#"Connection":"keep-alive",
"Content-Type":"application/x-www-form-urlencoded",
} resp = requests.get(url, headers=headers, params=data)
#resp = requests.post(url, data=data, headers=headers) if resp.status_code == 200: print('gzip data: ',resp.content)
data = gzip.decompress(resp.content).decode("utf-8")
print("ungzip data: ",data)
else:
print("error") if __name__ == '__main__':
main()
<pre name="code" class="python">解压gzip文件示例:
import gzip
f = gzip.open('file.txt.gz', 'rb')
file_content = f.read()
f.close() 创建gzip文件:
import gzip
content = "Lots of content here"
f = gzip.open('file.txt.gz', 'wb')
f.write(content)
f.close() gzip压缩现有文件:
import gzip
f_in = open('file.txt', 'rb')
f_out = gzip.open('file.txt.gz', 'wb')
f_out.writelines(f_in)
f_out.close()
f_in.close()

从/opt/mat/*.gz文件中读取每一行,找到包含'GET~#~ ~#~'或者'POST~#~ ~#~'的输出该行

#!/usr/bin/python
#!encoding:utf8 import shutil
import os
import sys
import glob
import re
import gzip #扫描目录文件
def parseFile(filename):
#打开文件,遍历其中的每一行遇到有'GET~#~ ~#~'或者'POST~#~ ~#~'的输出该行
file = gzip.open(filename, 'rb')
#eachline = file.readlines()
for eachline in file:
#str = eachline
#if eachline == "*GET~#~ ~#~*" or eachline == "*POST~#~ ~#~*":
if eachline.find("GET~#~ ~#~") or eachline.find("*POST~#~ ~#~*"):
print(eachline)
file.close()
if __name__ == '__main__':
scandir = '/opt/mat/'
fileform = '*.gz'
flist = glob.glob(os.path.join(scandir, fileform))
for item in flist:
print(item)
parseFile(item)

python gzip的更多相关文章

  1. python gzip 压缩文件

    压缩数据创建gzip文件 先看一个略麻烦的做法 ? 1 2 3 4 5 6 import StringIO,gzip content = 'Life is short.I use python' zb ...

  2. python gzip,bz2学习

    一.gzip import gzip 1.解压缩 a = gzip.open('a.tar.gz') b = open('a.tar','wb') b.write(a.read()) a.close( ...

  3. python gzip压缩

    1 import urllib2 2 from StringIO import StringIO 3 import gzip 4 5 def loadData(url): 6 request = ur ...

  4. python开发_gzip_压缩|解压缩gz文件_完整版_博主推荐

    ''' gzip -- 支持gzip文件 源文件:Lib/gzip.py 这个模块提供了一些简单的接口来对文件进行压缩和解压缩,类似于GNU项目的gzip和gunzip. 数据的压缩源于zlib模块的 ...

  5. Gzip模块

    Gzip模块为python的压缩和解压缩模块,读写gzip 文件 一.使用gzip模块压缩文件: 1 import gzip #导入python gzip模块,注意名字为全小写 2 g = gzip. ...

  6. python处理经过gzip压缩的网页内容

    Python在进行网页抓取时,有时会获取到经过gzip压缩后的数据(体积小,传输快),导致无法阅读和使用. 如图所示,为http原始报文.可以看到,header区域的“Content-Encoding ...

  7. Python 处理server返回gzip内容

    Python 如何处理server返回gzip压缩过的内容,代码如下: from StringIO import StringIOimport gzip request = urllib2.Reque ...

  8. 飘逸的python - 简明gzip模块压缩教程

    压缩数据创建gzip文件 先看一个略麻烦的做法 import StringIO,gzip content = 'Life is short.I use python' zbuf = StringIO. ...

  9. 从python爬虫引发出的gzip,deflate,sdch,br压缩算法分析

    今天在使用python爬虫时遇到一个奇怪的问题,使用的是自带的urllib库,在解析网页时获取到的为b'\x1f\x8b\x08\x00\x00\x00\x00...等十六进制数字,尝试使用chard ...

随机推荐

  1. monkey+shell命令解析总结

    结束monkey方法 Linux下: adb shell top | grep monkey windows下: 1.adb shell top | find "monkey" 5 ...

  2. C#锐利体验2读书笔记

    匿名方法,迭代,匿名方法允许我们以一种“内联”的方法来编写方法代码;匿名方法是直接与委托实例化相关联的,使委托实例化更加直观方便.匿名方法的几个相关问题--参数列表,--返回值,--外部变量. add ...

  3. BZOJ3028 食物 和 LOJ6261 一个人的高三楼

    总结一下广义二项式定理. 食物 明明这次又要出去旅游了,和上次不同的是,他这次要去宇宙探险!我们暂且不讨论他有多么NC,他又幻想了他应该带一些什么东西.理所当然的,你当然要帮他计算携带N件物品的方案数 ...

  4. npm run build打包时修改的路径

  5. python zlib模块缺失报错:RuntimeError: Compression requires the (missing) zlib module

    解决方式: # yum install zlib # yum install zlib-devel 下载成功后,进入python2.7的目录,重新执行 #make #make install 此时先前 ...

  6. JS判断某变量是否为某数组中的一个值的3种方法

    1.正则表达式 js 中判断某个元素是否存在于某个 js 数组中,相当于 PHP 语言中的 in_array 函数. 1 Array.prototype.in_array = function (e) ...

  7. shell脚本编程基础之while、for、until循环

    while及until循环结构 while CONDITION:do statement done 进入循环:条件满足 退出循环:条件不满足 当需要命令的执行状态返回值时,可以直接把整个命令当做循环的 ...

  8. 如何在 Debian 9 上安装和使用 Docker

    Docker 是一个容器化平台,允许您快速构建,测试和部署应用程序,作为便携式,自给自足的容器,几乎可以在任何地方运行. Docker 是容器技术的事实上的标准,它是 DevOps 工程师及其持续集成 ...

  9. 手把手实例对比String、StringBuilder字符串的连接效率及StringBuilder和StringBuffer线程安全的比较

    一.字符串连接的效率问题 使用String连接字符串时为什么慢? 小知识点 java中对数组进行初始化后,该数组所占的内存空间.数组长度都是不可变的. 创建一个字符串,为字符串对象分配内存空间,会耗费 ...

  10. #C++初学记录(树和二叉树)

    二叉树的编号 例题 6-6 小球下落问题 有一棵二叉树,最大深度为D,且所有叶子深度都相同.所有节点从上到下,从左到右编号为1,2,3,4,....,2^D-1.在节点1处放置小球,他会往下落.每个节 ...