摘要
获取字符串(字段名)和工作空间路径,并基于输出地理数据库中的名称限制返回一个有效字段名。输入字符串中所有的无效字符都将替换为下划线 (_)。字段名的限制取决于所使用的特定数据库(结构化查询语言 [SQL] 或 Oracle)。
语法
ValidateFieldName (name, {workspace})
参数 | 说明 | 数据类型 |
name | 要验证的字段名称。若未指定可选工作空间,则将根据当前工作空间对字段名称进行验证。 | String |
workspace | 要验证字段名称的可选指定工作空间。此工作空间可以是文件系统,或者是个人、文件或企业级地理数据库。 若未指定工作空间,则将根据当前工作空间环境对字段名称进行验证。如果未设置工作空间环境,则将根据文件夹工作空间对字段名称进行验证。 | 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))