时间:2023-05-17人气:作者:未知
最近处理线上日志,日志文件刚好是经过压缩的,且是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()
再次执行就能看到大文件,正常解压了
不知道大家还记不记得“万能钥匙”这种APP。 一开始,小编觉得研究这玩意的简直就是大好人,但现在才知道,它有多坑! 有很多人,由于手机流量不够用了,就会想着通过万能钥匙,破解周围某个WiF
(0)人喜欢2023-05-17广西梧州发生劫持人质事件,警方:嫌疑人已被控制 ,人质,梧州,劫持事件,警察
(0)人喜欢2023-05-17马克龙声称“俄罗斯开始成为中国的附庸”,俄外交部和克宫驳斥 ,克宫,银行家,科学家,俄外交部,佩斯科夫,经济学家,法国政治人物,俄罗斯外交部,埃马纽埃尔·马克龙
(0)人喜欢2023-05-17电脑开机进不了桌面是在使用电脑的过程中常常会遇到的问题,遇到这种问题我们要逐步去排查各种问题,下面就和大家讲讲最容易排查的几个点吧。 系统:win10系统 电脑:华硕灵耀 S4000UA720
(0)人喜欢2023-05-17不知道大家还记不记得“万能钥匙”这种APP。 一开始,小编觉得研究这玩意的简直就是大好人,但现在才知道,它有多坑! 有很多人,由于手机流量不够用了,就会想着通过万能钥匙,破解周围某个WiF
(0)人喜欢2023-05-17最近处理线上日志,日志文件刚好是经过压缩的,且是gz后缀。自己便采用gzip库来处理。 示例如下: 创建gzip文件 # -- coding: utf-8 --import gzip""
(0)人喜欢2023-05-171、红心芭乐富含多种矿物质和抗氧化成分,经常适量的食用可以帮助人体美白肌肤,还能抑制色斑形成,提高人体皮肤对抗紫外线的能力,是很好的滋养皮肤,养颜美容的水果。2、红心芭乐富含铁和钙,能帮助人体养血补血,防治贫血,还能补充
(0)人喜欢2023-05-17广西梧州发生劫持人质事件,警方:嫌疑人已被控制 ,人质,梧州,劫持事件,警察
(0)人喜欢2023-05-17