加入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 閱讀(566) 評論(0)  編輯  收藏 所屬分類: python

          常用鏈接

          留言簿(21)

          隨筆分類(265)

          隨筆檔案(242)

          相冊

          JAVA網站

          關注的Blog

          搜索

          •  

          積分與排名

          • 積分 - 916102
          • 排名 - 40

          最新評論

          主站蜘蛛池模板: 互助| 阿巴嘎旗| 新田县| 泾源县| 浮梁县| 平陆县| 息烽县| 佛坪县| 友谊县| 通许县| 宣恩县| 布尔津县| 开化县| 桓台县| 马鞍山市| 郑州市| 三台县| 永春县| 固阳县| 依安县| 竹北市| 衡东县| 苏州市| 定西市| 固始县| 三明市| 高雄市| 宜章县| 玉龙| 桃江县| 夏河县| 长寿区| 江城| 即墨市| 开远市| 长子县| 永城市| 林周县| 延庆县| 毕节市| 金塔县|