Renaming field using ArcPy?

Try this using a combination of Add Field, Calculate Field, and Delete Field arcpy tools:

if fieldInfo.getFieldName(index) == "status":
    arcpy.AddField_management(layer, "stat", "TEXT", "", "", "50", "",        "NULLABLE", "NON_REQUIRED", "")                     
    arcpy.CalculateField_management(layer, "stat", "!status!", "PYTHON_9.3", "")
    arcpy.DeleteField_management(layer, "status")

You can now rename a field using core ArcGIS Desktop GP tool - Alter Field (Data Management). This tool provides the ability to rename fields or rename field aliases for any geodatabase table or feature class.

This tool is available starting with 10.2.1.


To rename a field in a table or feature class I would try the procedure described here.

  1. Start ArcMap and open the Catalog window.
  2. Locate the database that contains the table you want to alter.
  3. Right-click the table and click Properties.
  4. Click the Fields tab.
  5. Click on the existing text in the Field Name column and type a new name.

I just tested this on a file geodatabase table using ArcGIS for Desktop Standard 10.1 SP1 and it worked fine.

Unfortunately, after writing this I searched the What's New in ArcGIS 10.1 PDF file and found that this functionality may have been added at that version - still it could be worth testing the latest service pack of 10.0 to see if it was back ported there too.