中文

操作方法:从 ArcMap 的要素类中批量导出附件

摘要

没有地理处理工具允许用户在本地导出并保存所有附件。 下面提供的说明描述了一种可能的解决方案,即通过创建脚本工具完成任务。

过程

要从要素类批量导出附件,请使用下面提供的工作流从 Python 脚本创建脚本工具,然后运行创建的脚本工具。

:
此脚本要求输入表为在要素类上启用附件时创建的标准附件表。 这是因为脚本依赖于此表中存储的 DATA、ATT_NAME 和 ATTACHMENTID 字段。 典型的命名约定应该将 _ATTACH 追加至表名的末尾。
  1. 将以下脚本复制并粘贴到记事本中,并将其另存为ExportAttachments.py
    import arcpy
    from arcpy import da
    import os
    
    inTable = arcpy.GetParameterAsText(0)
    fileLocation = arcpy.GetParameterAsText(1)
    
    with da.SearchCursor(inTable, ['DATA', 'ATT_NAME', 'ATTACHMENTID']) as cursor:
     for item in cursor:
     attachment = item[0]
     filenum = "ATT" + str(item[2]) + "_"
     filename = filenum + str(item[1])
     open(fileLocation + os.sep + filename, 'wb').write(attachment.tobytes())
     del item
     del filenum
     del filename
     del attachment
    :
    此脚本会遍历单个要素类的整个附件表,并将所有附件(保存为 BLOB 或二进制大对象)复制到文件。
  2. 目录窗口中,导航至工具箱,然后右键单击我的工具箱 > 新建 > 工具箱

    An image of adding a new toolbox.
     
  3. 在新工具箱中添加脚本工具。 有关执行此操作的步骤,请参阅添加脚本工具
    1. 对于脚本文件,导航至保存 ExportAttachments.py 脚本的位置。 选择脚本,单击确定,然后单击下一步

      An image of adding the Script File.
       
    2. 显示名称列的第一行中键入附件表,并将数据类型设置为
    3. 添加第二个参数并在显示名称中键入输出位置,并将数据类型设置为文件夹

      An image of configuring the script tool parameters.
       
    4. 单击完成。新的脚本工具随即添加到工具箱中。
  4. 双击创建的脚本工具以打开该工具。
    1. 在对话框中,选择其中包含要在附件表参数中提取的附件的附件表。
    2. 选择一个文件夹以将导出的附件保存到输出位置下,然后单击确定

      An image of the Export Attachments dialog box.
       
    3. 单击确定运行工具。附件成功批量导出到输出位置参数中定义的本地文件夹中。

      An image of the exported attachments in a folder.
       

相关信息