I am trying to automate a workflow and I am working with the first 'piece' of the code which should check the feature classes for spatial reference and project them out if they do not equal the defined projection.

The following is the code I am using:

    # Import arcpy and numpy
    import os
    import arcpy
    import numpy
    
    arcpy.env.workspace = r"C:\Users\GIS\Python\Distances.gdb"
    outWorkspace = r"C:\Users\GIS\Python\Distances.gdb"
    
    try:
    
        # Use ListFeatureClasses to generate a list of inputs
        for fc in arcpy.ListFeatureClasses():
    
            # Determine if the input has a defined coordinate system, can't project it if it does not
            dsc = arcpy.Describe(fc)
    
            if dsc.spatialReference.Name != "NAD 1983 StatePlane California III FIPS 0403 (US Feet)":
                # Determine the new output feature class path and name
                outfc = os.path.join(outWorkspace, fc + "_NAD1983")
    
                # Set output coordinate system
                outCS = arcpy.SpatialReference('NAD 1983 StatePlane California III FIPS 0403 (US Feet)')
    
                # run project tool
                arcpy.Project_management(fc, outfc, outCS)
    
                # check messages
                print(arcpy.GetMessages())
    
            else:
    
                print(fc)
    
    except arcpy.ExecuteError:
        print(arcpy.GetMessages(2))
    
    except Exception as ex:
        print(ex.args[0])

The code above just outputs all of the feature classes into the defined projection rather than discriminating between the ones that are properly projected and the ones that are not.

-Side Note- numpy is not used here but will be later.