1 #coding:utf-8
2 import tarfile
3 import zipfile
4 import rarfile
5 import os
6 import shutil
7 class parsePackage:
8 def __init__(self):
9 self.funcMap={
'tar':self.untar,
10 'zip':self.unzip,
11 'rar':self.unrar,
12 'gz':self.untar}
13 def parse(self,fname,dirs):
14 try:
15 pkg_type = fname.split(
'.')[-1
]
16 if self.funcMap.get(pkg_type)
is None:
17 print "%s is not exist", pkg_type
18 return -1
19 self.funcMap[pkg_type](fname, dirs)
20 except Exception ,e:
21 print e
22 return dirs
#解压文件路径
23
24 def untar(self,fname, dirs):
25 try:
26 t =
tarfile.open(fname)
27 t.extractall(path=
dirs)
28 except Exception ,e:
29 print e
30
31
32 def unzip(self,fname, dirs):
33 try:
34 f = zipfile.ZipFile(fname,
'r')
35 for file
in f.namelist():
36 print dirs.split(
'/')[-1] +
'/'
37 f.extract(file, dirs.split(
'/')[-1] +
'/')
38 except Exception ,e:
39 print e
40
41 def unrar(self,fname, dirs):
42 try:
43 file = rarfile.RarFile(fname)
44 file.extractall(dirs)
45 except Exception,e:
46 print e
47
48 def tar(self,fname):
49 t = tarfile.open(fname +
".tar.gz",
"w:gz")
50 for root, dir, files
in os.walk(fname):
51 print root, dir, files
52 for file
in files:
53 fullpath =
os.path.join(root, file)
54 t.add(fullpath)
55 t.close()
56 root_dest_path=os.path.join(
'./tools/static',fname.split(
'/')[-1])+
'.tar.gz'
57 shutil.move(fname +
".tar.gz", root_dest_path)
58
59 return root_dest_path
转载于:https://www.cnblogs.com/gongxijun/p/6718574.html