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

          常用鏈接

          留言簿(21)

          隨筆分類(265)

          隨筆檔案(242)

          相冊

          JAVA網站

          關注的Blog

          搜索

          •  

          積分與排名

          • 積分 - 914066
          • 排名 - 40

          最新評論

          主站蜘蛛池模板: 台东县| 稻城县| 武乡县| 边坝县| 镇平县| 望谟县| 沂南县| 新营市| 德州市| 毕节市| 秦皇岛市| 泽库县| 宣化县| 南安市| 乐都县| 厦门市| 砀山县| 屏南县| 南陵县| 济阳县| 仙游县| 鞍山市| 乌拉特前旗| 鱼台县| 崇义县| 昔阳县| 澄城县| 神农架林区| 弥勒县| 连江县| 民乐县| 新泰市| 金昌市| 凤阳县| 左贡县| 葵青区| 木兰县| 铜陵市| 禹州市| 巫溪县| 红河县|