加入tar中间过程:
#
-*- coding:utf-8 -*-
#
=============================================================================================================
#
#
brief : 制作viruswall 的离线升级数据
#
#
author : hechangmin
#
#
date : 2008.6
#
#
notice : 先变成tar 文件
#
=============================================================================================================
import
os
import
threading, zipfile
import
tarfile
class
AsyncZip(threading.Thread):
def
__init__
(self, infile, outfile):
threading.Thread.
__init__
(self)
self.infile
=
infile
self.outfile
=
outfile
def
run(self):
state
=
'
w
'
if
os.path.isfile(self.outfile)
==
True:
state
=
'
a
'
f
=
zipfile.ZipFile(self.outfile, state, zipfile.ZIP_DEFLATED)
f.write(self.infile)
f.close()
print
'
Finished background zip of:
'
, self.infile
def
zipDir(src,dst):
initPath
=
os.getcwd()
tempDST
=
os.path.join(os.getcwd(),dst)
tempSRC
=
os.path.join(os.getcwd(),src)
os.chdir( tempSRC )
files
=
os.listdir(os.curdir)
tar
=
tarfile.open(
"
temp.tar
"
,
"
w
"
)
for
file
in
files:
tar.add(file)
tar.close()
background
=
AsyncZip(
"
temp.tar
"
,dst)
background.start()
background.join()
#
Wait for the background task to finish
os.chdir( initPath )
print
os.getcwd()
#
test ok
if
__name__
==
'
__main__
'
:
zipDir(
"
D:\\AutoUpdate\\DataDist\\viruswall\\Data\\KSVW-VirusDB\\
"
,
"
d:\\AutoUpdate\\DataDist\\viruswall\\Data\\update\\KSVW-VirusDB.tgz
"
)
当然还不够,因为这里虽然加入了tar环节,但是最后还是zip压缩。
posted on 2008-06-26 09:52
-274°C 阅读(555)
评论(0) 编辑 收藏 所属分类:
python