最近处理线上日志,日志文件刚好是经过压缩的,且是gz后缀。自己便采用gzip库来处理。

示例如下:

创建gzip文件

# -- coding: utf-8 --import gzip"""创建gzip文件"""content = """侠客行李白 〔唐代〕赵客缦胡缨,吴钩霜雪明。银鞍照白马,飒沓如流星。十步杀一人,千里不留行。事了拂衣去,深藏身与名。闲过信陵饮,脱剑膝前横。将炙啖朱亥,持觞劝侯嬴。三杯吐然诺,五岳倒为轻。眼花耳热后,意气素霓生。救赵挥金槌,邯郸先震惊。千秋二壮士,烜赫大梁城。纵死侠骨香,不惭世上英。谁能书阁下,白首太玄经。"""f = gzip.open('xiakexing.txt.gz', 'wb')f.write(str.encode(content))f.close()


解压gzip文件

# -- coding: utf-8 --import gzip"""解压gzip文件"""f = gzip.open('xiakexing.txt.gz', 'rb')file_content = f.read().decode('utf-8')f.close()print(file_content)


压缩现有gzip文件

# -- coding: utf-8 --import gzip"""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()


处理大文件

真正在生产可能会存在比较大的文件,直接解压肯定是不行了。可能会报错,例如:


所以可以采用循环处理,加入一定的缓冲机制,例如:

# -- coding: utf-8 --import gzipimport osbuf_size = 1024 * 8def gzip_file(src, dst): fin = open(src, 'rb') fout = gzip.open(dst, 'wb') in2out(fin, fout)def gunzip_file(gz_file, dst): fin = gzip.open(gz_file, 'rb') fout = open(dst, 'wb') in2out(fin, fout)def in2out(fin, fout): while True: buf = fin.read(buf_size) if len(buf) < 1: break fout.write(buf) fin.close() fout.close()

再次执行就能看到大文件,正常解压了


如何开启gzip压缩方法大全

IIS6.0启用Gzip压缩的方法:
1、新建Web服务扩展(如下图)

dll路径:“c:windowssystem32inetsrvgzip.dll”,然后启用。

2、网站服务中开启HTTP压缩支持(如下图)

临时目录需要给IIS用户读写权限。

3、修改IIS配置文件MetaBase.xml

文件路径:“c:windowssystem32inetsrv”(请先备份至他处),打开后搜索“HcDynamicCompressionLevel”,并修改(确定已备份)“Compression/deflate”和“Compression/gzip”两个片段的内容。下面的图n和图b所修改的内容用意是将js、css和php加入到压缩的范畴,数字9代表压缩等级。

(图n)

(图b)

4、重启IIS服务使之生效
——————————————————分分割割—————————————————

Apache启用Gzip压缩的方法:

1、开启模块并添加配置项目
a、vi /etc/httpd/conf/httpd.conf

b、查找LoadModule (/LoadModule),加入“LoadModule deflate_module modules/mod_deflate.so”这行

c、添加配置项目(下段内容)

复制代码代码如下:

<IfModule mod_deflate.c>
# 压缩等级 9
DeflateCompressionLevel 9
# 压缩类型 html、xml、php、css、js
SetOutputFilter DEFLATE
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-javascript application/x-httpd-php
AddOutputFilter DEFLATE js css
</IfModule>

2、重启apache使之生效

service httpd start

——————————————————分分割割—————————————————

检测是否支持Gzip

END
注意事项
1. 在编辑MetaBase.xml前需要停止IIS,可以使用 net stop iisadmin

2. 修改完成后开启iisadmin服务,并执行iisreset命令

关于SEO的测试
压缩是否对SEO有影响,经测试,开启后仍然可以被很好的收录。

win 10 gzip怎么用

启动WinRAR
1

把gzip文件拖到WinRAR中,就可以看到里...
2

右键该压缩文件,选”7-Zip“-”Open a...
3

这个时候,就可以看到gzip文件里面的内...

win7系统下怎样解压gz文件?

打开7-zip官网下载并安装7-Zip软件,

压缩文件夹为tar.gz格式压缩包:
1,比如要压缩qiangzi文件夹(文件夹和文件的名称不能为中文,否则压缩成tar.gz文件后名称会乱码),在qiangzi文件夹上点击鼠标右键,依次点击“7-Zip”—“添加到压缩包”,压缩格式选“tar”,点击确定按钮,生成qiangzi.tar文件。

2,然后在qiangzi.tar文件上点击鼠标右键,依次点击“7-Zip”—“添加到压缩包”,压缩格式选“gzip”,点击确定按钮,生成qiangzi.tar.gz文件。

解压tar.gz格式压缩包:比如解压qiangzi.tar.gz文件,使用7-Zip解压两次即可。

服务器开启Gzip压缩功能

在负载均衡中有一个必须要做的事情就是给服务器开启Gzip压缩功能,对用户请求的页面进行压缩处理,以达到节省网络带宽,提高网站速度的作用。

Gzip是若干文件压缩程序的简称,通常指GNU计划的实现,此处的Gzip代表的就是GUN ZIP,这也是HTTP1.1协议定义的两种压缩方法中最常用的一种压缩方法,客户端浏览器大都支持这种压缩格式。

接下来,将介绍Apache、Nginx 如何开启Gzip压缩。

Apache开启Gzip要看查看是否已经开启mod_deflate模块,如果没有则需要先加载,在配置文件httpd.conf中将

前面的#号去掉。另外,如果对Apache的配置文件不太懂的客户在修改配置文件之前对配置文件进行备份。

开启模块后,在httpd.conf配置文件的最下面空白处添加一下内容:

其中DeflateCompressionLevel 的意思是压缩等级,共分为1-9,9级为最高,不建议使用太高的压缩比,这样会对CPU产生太大的负担。

打开配置文件 nginx.conf找到Gzip on 把前面的注释符号#去掉即可开启GZIP服务。然后配置GZIP即可。

下面是一个相对优化不错的配置。