当前位置:首页>python>Python 自动保存 遍历当前工程中所有地图图层

Python 自动保存 遍历当前工程中所有地图图层

  • 2026-09-06 20:08:14
Python 自动保存 遍历当前工程中所有地图图层
  • 遍历当前工程中所有地图图层

  • 自动找出它们的数据源 GDB(去重)

  • 依次开启编辑会话并保存

import arcpy

# 获取当前工程

aprx = arcpy.mp.ArcGISProject("CURRENT")

# 存储所有唯一的 GDB 路径

gdb_paths = set()

# 遍历所有地图和图层

for m in aprx.listMaps():

    for lyr in m.listLayers():

        if lyr.isFeatureLayer:

            try:

                desc = arcpy.Describe(lyr.dataSource)

                if hasattr(desc, "path") and desc.path.lower().endswith(".gdb"):

                    gdb_paths.add(desc.path)

            except:

                pass

if not gdb_paths:

    print("未找到任何 GDB 数据源,无法保存编辑。")

else:

    print(f"检测到 {len(gdb_paths)} 个 GDB:")

    for gdb in gdb_paths:

        print(f"- {gdb}")

        try:

            # 开启编辑会话

            edit = arcpy.da.Editor(gdb)

            # 假设都是文件 GDB(非版本化),两个参数都 False

            edit.startEditing(False, False)

            edit.startOperation()

            # 不做修改,只为保存已有编辑

            edit.stopOperation()

            # 保存并结束

            edit.stopEditing(True)

            print(f"✅ 已保存 {gdb} 的所有编辑")

        except Exception as e:

            print(f"❌ 保存 {gdb} 失败: {e}")

print("所有工作空间的编辑保存完成。")

最新文章

随机文章