我在arcgis中运行这段代码,总是提示line14有错误,修改多次未成功,想让你们帮看看问题出在哪
# 1. 导入 arcpy 和 os 模块
import arcpy
import os
# 2. 定义函数 check_shp_fields,参数为 workspace
def check_shp_fields(workspace):
# 3. 设置 arcpy 的工作空间
arcpy.env.workspace = workspace
# 4. 获取 SHP 文件列表
shp_files = arcpy.ListFeatureClasses()
# 5. 检查 SHP 文件的字段
for shp_file in shp_files:
# 6. 获取 SHP 文件路径
shp_path = os.path.join(workspace, shp_file)
# 7. 获取 SHP 文件的字段信息
fields = arcpy.ListFields(shp_path)
# 8. 检查字段是否为空值或必填字段为空
for field in fields:
field_name = field.name
is_required = field.required
# 9. 使用 SearchCursor 遍历字段值
with arcpy.da.SearchCursor(shp_path, [field_name]) as cursor:
for row in cursor:
value = row[0]
# 10. 检查字段是否为空值
if value is None or value == "":
arcpy.AddWarning("Unqualified SHP file: {}\nField: {}\nReason: Field value is empty.".format(shp_file, field_name))
break
# 11. 检查字段是否为必填字段但值为空
if is_required and (value is None or value == ""):
arcpy.AddWarning("Unqualified SHP file: {}\nField: {}\nReason: Required field value is empty.".format(shp_file, field_name))
break
# 12. 从参数中获取工作空间
workspace = arcpy.GetParameterAsText(0)
# 13. 调用函数进行 SHP 文件字段检查
check_shp_fields(workspace)