Creates a unique scratch path name for the specified data type. If no workspace is given the current workspace is used.


CreateScratchName ({prefix}, {suffix}, {data_type}, {workspace})
ParameterExplanationData Type

The prefix that is added to the scratchname. By default, a prefix of xx is used.

(The default value is xx)


The suffix added to the scratchname. This can be an empty double-quoted string.


The data type which will be used to create the scratchname. Valid datatypes are:

  • CoverageOnly valid Coverage names are returned.
  • DatasetOnly valid Dataset names are returned.
  • FeatureClassOnly valid FeatureClass names are returned.
  • FeatureDatasetOnly valid FeatureDataset names are returned.
  • FolderOnly valid Folder names are returned.
  • GeodatasetOnly valid Geodataset names are returned.
  • GeometricNetworkOnly valid Geometric Network names are returned.
  • ArcInfoTableOnly valid ArcInfo Table names are returned.
  • NetworkDatasetOnly valid Network Dataset names are returned.
  • RasterBandOnly valid Raster Band names are returned.
  • RasterCatalogOnly valid Raster Catalog names are returned.
  • RasterDatasetOnly valid Raster Dataset names are returned.
  • ShapefileOnly valid Shapefile names are returned.
  • TerrainOnly valid Terrain names are returned.
  • WorkspaceOnly valid Workspace scratchnames are returned.

The workspace used to determine the scratch name to be created. If not specified, the current workspace is used.

Return Value
Data TypeExplanation

The unique scratch path name.

Code sample

CreateScratchName example

Create a unique scratch name for the derived output of the Buffer tool. This scratch name is then used as input to the Clip tool.

import arcpy

# Set workspace
arcpy.env.workspace = "C:/Data/Municipal.gdb"

# Create a scratch name for the Buffer tool output.
#   The scratch name created will be include 'temp0.shp',
#   If temp0.shp already exists, the number will be incremented
#   until the name is unique in the workspace.
scratch_name = arcpy.CreateScratchName("temp",

# Execute Buffer tool, using scratch name for output
arcpy.Buffer_analysis("Roads", scratch_name, "1000 feet")

# Execute Clip tool, using scratch name for input
arcpy.Clip_analysis(scratch_name, "CityBoundary", "CityRoads")

# Delete scratch dataset

Related topics

In this topic