Skip to main content

ListFeatureClasses

Summary

The ListFeatureClasses function returns a list of the feature classes in the current workspace, limited by name, feature type, and optionally, feature dataset.

Discussion

The workspace environment must be set before using several of the list functions, including ListDatasets, ListFeatureClasses, ListFiles, ListRasters, ListTables, and ListWorkspaces.

Syntax

ListFeatureClasses({wild_card}, {feature_type}, {feature_dataset})

Parameter Explanation Data Type

wild_card

Limits the results returned. If a value is not specified, all values are returned. The wildcard is not case sensitive.

Use an asterisk (*) to represent zero or more characters. For example, Te* finds Tennessee and Texas.

String

feature_type

The feature type that will limit the results. Valid feature types are listed in the following table:

  • Annotation—Annotation feature classes

  • Arc—Arc (or polyline) feature classes

  • Dimension—Dimension feature classes

  • Edge—Edge feature classes

  • Junction—Junction feature classes

  • Label—Label feature classes

  • Line—Polyline (or arc) feature classes

  • Multipatch—Multipatch feature classes

  • Multipoint—Multipoint feature class

  • Node—Node feature classes

  • Point—Point feature classes

  • Polygon—Polygon feature classes

  • Polyline—Polyline (or arc) feature classes

  • Region—Region feature classes

  • Route—Route feature classes

  • Tic—Tic feature classes

  • All—All feature classes in the workspace. This is the default.

String

feature_dataset

Limits the feature classes returned to the feature dataset, if specified. If blank, only stand-alone feature classes will be returned in the workspace.

String

Return value

Data Type Explanation

String

The list containing feature class names is returned from the function, limited by the optional wild_card, feature_type, and feature_dataset arguments.

Code sample

ListFeatureClasses example 1

Copy shapefiles to a geodatabase.

import os
import arcpy

# Set the workspace for ListFeatureClasses
arcpy.env.workspace = "c:/base"

# Use the ListFeatureClasses function to return a list of
#  shapefiles.
featureclasses = arcpy.ListFeatureClasses()

# Copy shapefiles to a file geodatabase
for fc in featureclasses:
    arcpy.management.CopyFeatures(
        fc, os.path.join("c:/base/output.gdb",
                         os.path.splitext(fc)[0]))
ListFeatureClasses example 2

List all feature classes in a geodatabase, including any in feature datasets.

import arcpy
import os

arcpy.env.workspace = "c:/base/gdb.gdb"

datasets = arcpy.ListDatasets(feature_type='feature')
datasets = [''] + datasets if datasets is not None else []

for ds in datasets:
    for fc in arcpy.ListFeatureClasses(feature_dataset=ds):
        path = os.path.join(arcpy.env.workspace, ds, fc)
        print(path)