Skip To Content

Secuencia de comandos Python para descomprimir

 #********************************************************************** # Description: #    Unzips the contents of a zip file into an existing folder. # Arguments: #  0 - Input zip file #  1 - Input folder - path to existing folder that will contain  #      the contents of the zip file.  #**********************************************************************  # Import modules and create the geoprocessor # import sys, zipfile, arcpy, os, traceback from os.path import isdir, join, normpath, split  # Function to unzipping the contents of the zip file # def unzip(path, zip):     # If the output location does not yet exist, create it     #     if not isdir(path):         os.makedirs(path)          for each in zip.namelist():         arcpy.AddMessage("Extracting " + os.path.basename(each) + " ...")                  # Check to see if the item was written to the zip file with an         # archive name that includes a parent directory. If it does, create         # the parent folder in the output workspace and then write the file,         # otherwise, just write the file to the workspace.         #         if not each.endswith('/'):              root, name = split(each)             directory = normpath(join(path, root))             if not isdir(directory):                 os.makedirs(directory)             file(join(directory, name), 'wb').write(zip.read(each))  if __name__ == '__main__':     try:         # Get the tool parameter values         #         infile = arcpy.GetParameterAsText(0)         outfol = arcpy.GetParameterAsText(1)          # Create the zipfile handle for reading and unzip it         #         zip = zipfile.ZipFile(infile, 'r')         unzip(outfol, zip)         zip.close()       except:         # Return any Python specific errors and any error returned by the geoprocessor         #         tb = sys.exc_info()[2]         tbinfo = traceback.format_tb(tb)[0]         pymsg = "PYTHON ERRORS:\nTraceback Info:\n" + tbinfo + "\nError Info:\n    " + \                 str(sys.exc_type)+ ": " + str(sys.exc_value) + "\n"         arcpy.AddError(pymsg)          msgs = "GP ERRORS:\n" + arcpy.GetMessages(2) + "\n"         arcpy.AddError(msgs)