【ArcMap】修改选中路线的属性表的列名

将选中路线属性表中的列名 BZ_1修改为 BZ

import arcpy

try:
    # 获取当前地图中的所有图层
    mxd = arcpy.mapping.MapDocument("CURRENT")
    layers = arcpy.mapping.ListLayers(mxd)
    
    # 查找第一个线图层
    target_layer = None
    for layer in layers:
        if layer.isFeatureLayer:
            desc = arcpy.Describe(layer)
            if desc.shapeType == "Polyline":
                target_layer = layer
                break
    
    if target_layer is None:
        print "No line layer found"
        exit()
    
    print "Layer: " + target_layer.name
    
    # 获取BZ_1字段的信息
    fields = arcpy.ListFields(target_layer, "BZ_1")
    if not fields:
        print "Field BZ_1 does not exist"
        exit()
    
    bz1_field = fields[0]
    
    # 添加新字段BZ
    arcpy.AddField_management(target_layer, "BZ", "TEXT", field_length=bz1_field.length)
    print "New field BZ added"
    
    # 将BZ_1字段的值复制到BZ字段
    with arcpy.da.UpdateCursor(target_layer, ["BZ_1", "BZ"]) as cursor:
        for row in cursor:
            row[1] = row[0]  # 将BZ_1的值赋给BZ
            cursor.updateRow(row)
    print "Data copied from BZ_1 to BZ"
    
    # 删除旧字段BZ_1
    arcpy.DeleteField_management(target_layer, "BZ_1")
    print "Field BZ_1 deleted"
    
    print "Field name changed from BZ_1 to BZ successfully"
    
except Exception as e:
    print "Error: " + str(e)

 

posted @ 2025-10-31 17:06  山鬼谣`  阅读(2)  评论(0)    收藏  举报