python 压缩文件(2)
加入tar中间过程:<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee;">http://www.blogjava.net/Images/OutliningIndicators/None.gif# -*- coding:utf-8 -*-
http://www.blogjava.net/Images/OutliningIndicators/None.gif#=============================================================================================================
http://www.blogjava.net/Images/OutliningIndicators/None.gif#
http://www.blogjava.net/Images/OutliningIndicators/None.gif# brief : 制作viruswall 的离线升级数据
http://www.blogjava.net/Images/OutliningIndicators/None.gif#
http://www.blogjava.net/Images/OutliningIndicators/None.gif# author : hechangmin
http://www.blogjava.net/Images/OutliningIndicators/None.gif#
http://www.blogjava.net/Images/OutliningIndicators/None.gif# date : 2008.6
http://www.blogjava.net/Images/OutliningIndicators/None.gif#
http://www.blogjava.net/Images/OutliningIndicators/None.gif# notice : 先变成tar 文件
http://www.blogjava.net/Images/OutliningIndicators/None.gif#=============================================================================================================
http://www.blogjava.net/Images/OutliningIndicators/None.gif
http://www.blogjava.net/Images/OutliningIndicators/None.gifimport os
http://www.blogjava.net/Images/OutliningIndicators/None.gifimport threading, zipfile
http://www.blogjava.net/Images/OutliningIndicators/None.gifimport tarfile
http://www.blogjava.net/Images/OutliningIndicators/None.gif
http://www.blogjava.net/Images/OutliningIndicators/None.gifclass AsyncZip(threading.Thread):
http://www.blogjava.net/Images/OutliningIndicators/None.gif
http://www.blogjava.net/Images/OutliningIndicators/None.gif def __init__(self, infile, outfile):
http://www.blogjava.net/Images/OutliningIndicators/None.gif threading.Thread.__init__(self)
http://www.blogjava.net/Images/OutliningIndicators/None.gif self.infile = infile
http://www.blogjava.net/Images/OutliningIndicators/None.gif self.outfile = outfile
http://www.blogjava.net/Images/OutliningIndicators/None.gif def run(self):
http://www.blogjava.net/Images/OutliningIndicators/None.gif state = 'w'
http://www.blogjava.net/Images/OutliningIndicators/None.gif if os.path.isfile(self.outfile) == True:
http://www.blogjava.net/Images/OutliningIndicators/None.gif state = 'a'
http://www.blogjava.net/Images/OutliningIndicators/None.gif f = zipfile.ZipFile(self.outfile, state, zipfile.ZIP_DEFLATED)
http://www.blogjava.net/Images/OutliningIndicators/None.gif f.write(self.infile)
http://www.blogjava.net/Images/OutliningIndicators/None.gif f.close()
http://www.blogjava.net/Images/OutliningIndicators/None.gif print 'Finished background zip of: ', self.infile
http://www.blogjava.net/Images/OutliningIndicators/None.gif
http://www.blogjava.net/Images/OutliningIndicators/None.gifdef zipDir(src,dst):
http://www.blogjava.net/Images/OutliningIndicators/None.gif
http://www.blogjava.net/Images/OutliningIndicators/None.gif initPath = os.getcwd()
http://www.blogjava.net/Images/OutliningIndicators/None.gif
http://www.blogjava.net/Images/OutliningIndicators/None.gif tempDST = os.path.join(os.getcwd(),dst)
http://www.blogjava.net/Images/OutliningIndicators/None.gif tempSRC = os.path.join(os.getcwd(),src)
http://www.blogjava.net/Images/OutliningIndicators/None.gif os.chdir( tempSRC )
http://www.blogjava.net/Images/OutliningIndicators/None.gif files = os.listdir(os.curdir)
http://www.blogjava.net/Images/OutliningIndicators/None.gif tar = tarfile.open("temp.tar","w")
http://www.blogjava.net/Images/OutliningIndicators/None.gif for file in files:
http://www.blogjava.net/Images/OutliningIndicators/None.gif tar.add(file)
http://www.blogjava.net/Images/OutliningIndicators/None.gif tar.close()
http://www.blogjava.net/Images/OutliningIndicators/None.gif background = AsyncZip("temp.tar",dst)
http://www.blogjava.net/Images/OutliningIndicators/None.gif background.start()
http://www.blogjava.net/Images/OutliningIndicators/None.gif background.join() # Wait for the background task to finish
http://www.blogjava.net/Images/OutliningIndicators/None.gif
http://www.blogjava.net/Images/OutliningIndicators/None.gif os.chdir( initPath )
http://www.blogjava.net/Images/OutliningIndicators/None.gif print os.getcwd()
http://www.blogjava.net/Images/OutliningIndicators/None.gif#test ok
http://www.blogjava.net/Images/OutliningIndicators/None.gifif __name__ == '__main__':
http://www.blogjava.net/Images/OutliningIndicators/None.gif
http://www.blogjava.net/Images/OutliningIndicators/None.gif zipDir("D:\\AutoUpdate\\DataDist\\viruswall\\Data\\KSVW-VirusDB\\","d:\\AutoUpdate\\DataDist\\viruswall\\Data\\update\\KSVW-VirusDB.tgz")
http://www.blogjava.net/Images/OutliningIndicators/None.gif
http://www.blogjava.net/Images/OutliningIndicators/None.gif
页:
[1]