ValidateFieldName (arcpy)
Краткая информация
Принимает строку (имя поля) и путь рабочей области и возвращает корректное имя поля, созданное с учетом ограничений на задание имен в выходной базе геоданных. Все некорректные символы входной строки заменяются символом подчеркивания (_). Ограничения на имена полей зависят от используемой базы данных (Structured Query Language [SQL] или Oracle).
Синтаксис
Параметр | Объяснение | Тип данных |
name |
Проверяемое имя поля. Если дополнительная рабочая область не указана, имя поля проверяется относительно текущей рабочей области. | String |
workspace |
Дополнительно указанная рабочая область, относительно которой проверяется имя поля. Рабочей областью может быть файловая система или персональная, файловая база геоданных или база геоданных ArcSDE. Если рабочая область не указана, имя поля проверяется с помощью среды текущей рабочей области. Если рабочая область еще не была задана, имя поля проверяется на основе рабочей области папки. | String |
Тип данных | Объяснение |
String |
Возвращает строку, содержащую допустимое имя поля на основе текущей или указанной рабочей области. |
Пример кода
Возвращает допустимое имя поля на основе рабочей области.
import arcpy
import os
class ShapeError(Exception):
pass
try:
# Get the input feature class and make sure it contains polygons.
#
in_fc = arcpy.GetParameterAsText(0)
if arcpy.Describe(input).shapeType != "Polygon":
# Raise a custom exception
raise ShapeError("Input does not contain polygons")
# Get the new field name and validate it.
#
field_name = arcpy.GetParameterAsText(1)
field_name = arcpy.ValidateFieldName(field_name, os.path.dirname(in_fc))
# Add the new field and calculate the value.
#
arcpy.AddField_management(in_fc, field_name, "DOUBLE")
arcpy.CalculateField_management(in_fc,
field_name,
"!shape.area! / !shape.length!",
"PYTHON_9.3")
except ShapeError as err:
print(err[0])
except arcpy.ExecuteError:
print(arcpy.GetMessages(2))