Python實(shí)現(xiàn)壓縮與解壓gzip大文件的方法
本文實(shí)例講述了Python實(shí)現(xiàn)壓縮與解壓gzip大文件的方法。分享給大家供大家參考,具體如下:
#encoding=utf-8 #author: walker #date: 2015-10-26 #summary: 測試gzip壓縮/解壓文件 import gzip BufSize = 1024*8 def gZipFile(src, dst): fin = open(src, 'rb') fout = gzip.open(dst, 'wb') in2out(fin, fout) def gunZipFile(gzFile, dst): fin = gzip.open(gzFile, 'rb') fout = open(dst, 'wb') in2out(fin, fout) def in2out(fin, fout): while True: buf = fin.read(BufSize) if len(buf) < 1: break fout.write(buf) fin.close() fout.close() if __name__ == '__main__': src = r'D:\tmp\src.txt' dst = r'D:\tmp\src.txt.gz' ori = r'D:\tmp\ori.txt' gZipFile(src, dst) print('gZipFile over!') gunZipFile(dst, ori) print('gunZipFile over!')
也可以簡單地封裝成一個類:
class GZipTool: def __init__(self, bufSize): self.bufSize = bufSize self.fin = None self.fout = None def compress(self, src, dst): self.fin = open(src, 'rb') self.fout = gzip.open(dst, 'wb') self.__in2out() def decompress(self, gzFile, dst): self.fin = gzip.open(gzFile, 'rb') self.fout = open(dst, 'wb') self.__in2out() def __in2out(self,): while True: buf = self.fin.read(self.bufSize) if len(buf) < 1: break self.fout.write(buf) self.fin.close() self.fout.close()
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python文件與目錄操作技巧匯總》、《Python文本文件操作技巧匯總》、《Python URL操作技巧總結(jié)》、《Python圖片操作技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python Socket編程技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python入門與進(jìn)階經(jīng)典教程》
希望本文所述對大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
Python的Flask框架中使用Flask-SQLAlchemy管理數(shù)據(jù)庫的教程
在Python中我們可以使用SQLAlchemy框架進(jìn)行數(shù)據(jù)庫操作,那么對應(yīng)的在Flask框架中我們可以使用SQLAlchemy,下面我們就來看一下Python的Flask框架中使用Flask-SQLAlchemy管理數(shù)據(jù)庫的教程2016-06-06從Pyspark UDF調(diào)用另一個自定義Python函數(shù)的方法步驟
PySpark,通常稱為Apache Spark的Python API,是為分布式數(shù)據(jù)處理而創(chuàng)建的,使用UDF,可以擴(kuò)展和定制 PySpark 的功能以滿足某些需求,在本文中,我們將學(xué)習(xí)如何從Pyspark UDF調(diào)用另一個自定義Python函數(shù),需要的朋友可以參考下2023-11-11MATLAB如何利用散點(diǎn)進(jìn)行函數(shù)曲線擬合
這篇文章主要介紹了MATLAB如何利用散點(diǎn)進(jìn)行函數(shù)曲線擬合問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-11-11