Export Attribute Table to CSV with ArcPy and ArcGIS Pro

Table of Contents

The Video

Introduction

Learn how to export a feature class attribute table to CSV using ArcPy in ArcGIS Pro. We will cover both exporting all records and fields and creating a filtered CSV with selected fields and a SQL where clause.

ArcGIS Pro Definition Query Masterclass with ArcPy & Python

Free on YouTube! Witness the power of Definition Queries in ArcGIS Pro through this comprehensive course that dives managing and utilizing definition queries with spatial data using ArcPy and Python scripting. In this course, we will focus exclusively on Definition Queries, covering their creation, modification, and application through hands-on exercises and real-world scenarios.

Import ArcPy

As we are creating a standalone script outside of ArcGIS Pro we need to import the arcpy module.
				
					import arcpy

				
			

User Inputs

We have two user inputs. The first is the in_table which is the feature class or table to export to CSV. The second is the filepath to create the CSV file – out_csv.
				
					## the Feature CLass or Table to export to CSV
in_table = r"path\to\feature_class\or\table"

## the fielpath for the CSV file to create
out_csv = r"path\to\output\file.csv"
				
			

Export all features to CSV

We can use the Export Table geoprocessing tool from the Conversion toolbox and use the two required parameters to export all features and attribute to a CSV file. Run the script to here if you want to export all data.

				
					## Export Table geoprocessing tool with required parameters
arcpy.conversion.ExportTable(
    in_table=in_table,
    out_table=out_csv
)

				
			

Export a selection of fields and a subset of features

We can optionally filter the data with a where_clause and use the field_mapping parameter with the Export Table tool to select a subset of fields to export.
				
					## the list of fields to export
fields_list = [
    "FIELD_NAME_1", "FIELD_NAME_2", "FIELD_NAME_3", "FIELD_NAME_N"
]

## create a FieldMappings object
field_mappings = arcpy.FieldMappings()

## for each field name
for field in fields_list:
    ## create a FieldMap object
    field_map = arcpy.FieldMap()

    ## add Field to the FieldMap
    field_map.addInputField(
        in_table, # table_dataset
        field # field_name
    )

    ## add the FieldMap object to the FieldMappings
    field_mappings.addFieldMap(
        field_map # field_name
    )

## Export Table with option field_mapping and where_clause
arcpy.conversion.ExportTable(
    in_table=in_table,
    out_table=out_csv,
    where_clause="FIELD_NAME = 'Value'",
    field_mapping=field_mappings
)
				
			

If you’ve found these blogs helpful and would like to support the project, please consider making a donation. All learning material is provided free of charge to help GIS professionals, students, and developers learn ArcPy, the ArcGIS API for Python, ArcGIS Pro, and ArcGIS Online. Donations help cover website hosting, software licensing, domain costs, and the time involved in creating and maintaining tutorials, courses, and learning resources. Your support helps keep this content freely available to everyone and allows new courses and materials to be developed for the GIS community. If the content has helped you solve a problem, learn a new skill, or advance your career, please consider supporting the project with a donation. Every contribution, no matter the size, is greatly appreciated.

All the code in one place

				
					import arcpy

########################################################################################
## Esri Documentation:
##   https://pro.arcgis.com/en/pro-app/latest/tool-reference/conversion/export-table.htm
##   https://pro.arcgis.com/en/pro-app/latest/arcpy/classes/fieldmappings.htm
##   https://pro.arcgis.com/en/pro-app/latest/arcpy/classes/fieldmap.htm
##
########################################################################################

########################################################################################
## USER INPUT

## the Feature CLass or Table to export to CSV
in_table = r"path\to\feature_class\or\table"

## the fielpath for the CSV file to create
out_csv = r"path\to\output\file.csv"

########################################################################################
## Example 1: All Fields

## Export Table geoprocessing tool with required parameters
arcpy.conversion.ExportTable(
    in_table=in_table,
    out_table=out_csv
)

########################################################################################
## Example 2: Selection of fields & subset of records

## the list of fields to export
fields_list = [
    "FIELD_NAME_1", "FIELD_NAME_2", "FIELD_NAME_3", "FIELD_NAME_N"
]

## create a FieldMappings object
field_mappings = arcpy.FieldMappings()

## for each field name
for field in fields_list:
    ## create a FieldMap object
    field_map = arcpy.FieldMap()

    ## add Field to the FieldMap
    field_map.addInputField(
        in_table, # table_dataset
        field # field_name
    )
    ## add the FieldMap object to the FieldMappings
    field_mappings.addFieldMap(
        field_map # field_name
    )

## Export Table with option field_mapping and where_clause
arcpy.conversion.ExportTable(
    in_table=in_table,
    out_table=out_csv,
    where_clause="FIELD_NAME = 'Value'",
    field_mapping=field_mappings
)

########################################################################################
print("\nSCRIPT COMPLETE")
				
			

Leave a Comment