python gzip
通常用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的更多相关文章
- python gzip 压缩文件
压缩数据创建gzip文件 先看一个略麻烦的做法 ? 1 2 3 4 5 6 import StringIO,gzip content = 'Life is short.I use python' zb ...
- python gzip,bz2学习
一.gzip import gzip 1.解压缩 a = gzip.open('a.tar.gz') b = open('a.tar','wb') b.write(a.read()) a.close( ...
- python gzip压缩
1 import urllib2 2 from StringIO import StringIO 3 import gzip 4 5 def loadData(url): 6 request = ur ...
- python开发_gzip_压缩|解压缩gz文件_完整版_博主推荐
''' gzip -- 支持gzip文件 源文件:Lib/gzip.py 这个模块提供了一些简单的接口来对文件进行压缩和解压缩,类似于GNU项目的gzip和gunzip. 数据的压缩源于zlib模块的 ...
- Gzip模块
Gzip模块为python的压缩和解压缩模块,读写gzip 文件 一.使用gzip模块压缩文件: 1 import gzip #导入python gzip模块,注意名字为全小写 2 g = gzip. ...
- python处理经过gzip压缩的网页内容
Python在进行网页抓取时,有时会获取到经过gzip压缩后的数据(体积小,传输快),导致无法阅读和使用. 如图所示,为http原始报文.可以看到,header区域的“Content-Encoding ...
- Python 处理server返回gzip内容
Python 如何处理server返回gzip压缩过的内容,代码如下: from StringIO import StringIOimport gzip request = urllib2.Reque ...
- 飘逸的python - 简明gzip模块压缩教程
压缩数据创建gzip文件 先看一个略麻烦的做法 import StringIO,gzip content = 'Life is short.I use python' zbuf = StringIO. ...
- 从python爬虫引发出的gzip,deflate,sdch,br压缩算法分析
今天在使用python爬虫时遇到一个奇怪的问题,使用的是自带的urllib库,在解析网页时获取到的为b'\x1f\x8b\x08\x00\x00\x00\x00...等十六进制数字,尝试使用chard ...
随机推荐
- MySQL备份的三中方式
一.备份的目的 做灾难恢复:对损坏的数据进行恢复和还原需求改变:因需求改变而需要把数据还原到改变以前测试:测试新功能是否可用 二.备份需要考虑的问题 可以容忍丢失多长时间的数据:恢复数据要在多长时间内 ...
- cors劫持用户凭证任意登陆
漏洞作者:rcoil 挖洞过程无意中看到一个数据包,响应包中包含有Access-Control-Allow-Origin这个字段,然后就随手尝试看看有没有CORS漏洞!结果如图 再尝试 发现如下图! ...
- vue中点击不同的em添加class去除兄弟级class
vue中使用v-for循环li 怎么点击每个li中的em给添加class删除兄弟元素 <html lang="en"> <head> <meta ch ...
- BZOJ 4764: 弹飞大爷 LCT
思路并不难,主要是细节需要注意一下. 在 lct 中,删边要写成:f[lson]=0,lson=0 (因为删 x->y 时 y 不一定是左儿子,y 只是 x 的前驱) 然后 f[lson]=ls ...
- presto docker简单试用
starburstdata 团队提供了一个docker 版本的presto,其中已经内置了几个connectors tpch tpcds memory backhole jmx system pull ...
- gj的zabbix客户端开机自启动设置
查看是否自启动 配置chkconfig 启动服务
- Mysql 多表连接查询 inner join 和 outer join 的使用
JOIN的含义就如英文单词“join”一样,连接两张表,大致分为内连接,外连接,右连接,左连接,自然连接.这里描述先甩出一张用烂了的图,然后插入测试数据. 首先先列举本篇用到的分类(内连接,外连接,交 ...
- shell脚本编程基础之for循环
循环结构 循环需要有进入条件和退出条件,如果没有退出条件,则就会一直循环下去 for 变量 in 列表:do 循环体 done 生成列表及示例 {1..100}:生成1到100的整数列表 `comma ...
- 虚拟机,安装tools时出现“安装程序无法继续解决
报错:虚拟机安装了win10,安装tools时出现“安装程序无法继续.Microsoft Runtime DLL安装程序未能安装” 解决步骤: 双击安装程序,在它报以上错时不要点确定 这个时候按下窗口 ...
- 计算电脑所能表示的最大最小值(c++)
C++当中获得现在计算机上所能表示的各种类型(比如int,long int,short int,double,float等)最大最小有两种方法,一种是使用c++预先定义的宏,对于有些编译器可能需要包含 ...