2013-06-05 21:32:08 +10:00

50 lines
2.0 KiB
Python

# -*- coding:utf-8 -*-
"""
/***************************************************************************
Plugin Installer module
unzip function
-------------------
Date : May 2013
Copyright : (C) 2013 by Borys Jurgiel
Email : info at borysjurgiel dot pl
***************************************************************************/
/***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
***************************************************************************/
"""
import zipfile
import os
def unzip(file, targetDir):
""" Creates directory structure and extracts the zip contents to it.
file - the zip file to extract
targetDir - target location
"""
# create destination directory if doesn't exist
if not targetDir.endswith(':') and not os.path.exists(targetDir):
os.makedirs(targetDir)
zf = zipfile.ZipFile(file)
for name in zf.namelist():
# create directory if doesn't exist
localDir = os.path.split(name)[0]
fullDir = os.path.normpath( os.path.join(targetDir, localDir) )
if not os.path.exists(fullDir):
os.makedirs(fullDir)
# extract file
if not name.endswith('/'):
fullPath = os.path.normpath( os.path.join(targetDir, name) )
outfile = open(fullPath, 'wb')
outfile.write(zf.read(name))
outfile.flush()
outfile.close()