Zusammenfassung
Establishes a progressor object which allows progress information to be passed to a progress dialog box. The appearance of the progress dialog box can be controlled by choosing either the default progressor or the step progressor.
Auswertung
Since script tools share the application, you have control of the progress dialog box. You can control the appearance of the progress dialog box by choosing either the default progressor or the step progressor, as illustrated below.
Syntax
SetProgressor (type, {message}, {min_range}, {max_range}, {step_value})
Parameter | Erläuterung | Datentyp |
type | The progressor type (default or step).
(Der Standardwert ist default) | String |
message | The progressor label. The default is no label. | String |
min_range | Starting value for progressor. Default is 0. (Der Standardwert ist 0) | Integer |
max_range | Ending value for progressor. Default is 100. (Der Standardwert ist 100) | Integer |
step_value | The progressor step interval for updating the progress bar. (Der Standardwert ist 1) | Integer |
Codebeispiel
SetProgressor example
Set progressor object for displaying progress in the progress dialog box.
import os
import arcpy
# Allow overwriting of output
arcpy.env.overwriteOutput = True
# Set current workspace
arcpy.env.workspace = "c:/data"
# Get a list of shapefiles in folder
fcs = arcpy.ListFeatureClasses()
# Find the total count of shapefiles in list
fc_count = len(fcs)
# Set the progressor
arcpy.SetProgressor("step", "Copying shapefiles to geodatabase...",
0, fc_count, 1)
# Create a file gdb to contain new feature classes
arcpy.CreateFileGDB_management(arcpy.env.workspace, "fgdb.gdb")
# For each shapefile, copy to a file geodatabase
for shp in fcs:
# Trim the '.shp' extension
fc = os.path.splitext(shp)[0]
# Update the progressor label for current shapefile
arcpy.SetProgressorLabel("Loading {0}...".format(shp))
# Copy the data
arcpy.CopyFeatures_management(shp, os.path.join("fgdb.gdb", fc))
# Update the progressor position
arcpy.SetProgressorPosition()
arcpy.ResetProgressor()