ValidateFieldName (arcpy)

Резюме

Принимает строку (имя поля) и путь рабочей области и возвращает корректное имя поля, созданное с учетом ограничений на задание имен в выходной базе геоданных. Все некорректные символы входной строки заменяются символом подчеркивания (_). Ограничения на имена полей зависят от используемой базы данных (Structured Query Language [SQL] или Oracle).

Синтаксис

ValidateFieldName (name, {workspace})
ПараметрОбъяснениеТип данных
name

Проверяемое имя поля. Если дополнительная рабочая область не указана, имя поля проверяется относительно текущей рабочей области.

String
workspace

Дополнительно указанная рабочая область, относительно которой проверяется имя поля. Рабочей областью может быть файловая система или персональная, файловая база геоданных или база геоданных ArcSDE.

Если рабочая область не указана, имя поля проверяется с помощью среды текущей рабочей области. Если рабочая область еще не была задана, имя поля проверяется на основе рабочей области папки.

String
Возвращено значение
Тип данныхОбъяснение
String

Возвращает строку, содержащую допустимое имя поля на основе текущей или указанной рабочей области.

Пример кода

Пример ValidateFieldName

Возвращает допустимое имя поля на основе рабочей области.

class FieldError(Exception):
    pass

class ShapeError(Exception):
    pass

import arcpy
import os

try:
    # Get the input feature class and make sure it contains polygons.
    #
    input = arcpy.GetParameterAsText(0)
    dscFC = arcpy.Describe(input)
    if dscFC.shapeType.lower() != "polygon":
        # Raise a custom exception
        raise ShapeError
		
    # Get the new field name and validate it.
    #
    fieldName = arcpy.GetParameterAsText(1)	
    fieldName = arcpy.ValidateFieldName(fieldName, os.path.dirname(input))

    # Make sure shape_length and shape_area fields exist
    #
    if len(arcpy.ListFields(input,"Shape_area")) > 0 and \
        len(arcpy.ListFields(input,"Shape_length")) > 0:

        # Add the new field and calculate the value.
        #
        arcpy.AddField_management(input, fieldName, "double")
        arcpy.CalculateField_management(input,fieldName, 
                                        "[Shape_Area] / [Shape_Length]")
    else:
        # Raise a custom exception
        raise FieldError
except ShapeError:
    print "Input does not contain polygons"
except FieldError:
    print "Input does not contain shape_area and shape_length fields"
except:
    print arcpy.GetMessages(2)

Связанные темы

9/10/2013