mirror of
				https://github.com/qgis/QGIS.git
				synced 2025-10-31 00:06:02 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			51 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			51 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()
 |