生成附件匹配表 (数据管理)

摘要

用于创建匹配表,以与添加附件移除附件工具配合使用。

了解有关使用“附件”地理处理工具的详细信息

使用情况

  • 此工具将评估输入目标数据集中的每一行,并将关键字段参数值与输入文件夹参数值中受支持媒体文件的名称进行比较。 对于每个找到的匹配项,会在输出表中创建一条记录,其中包括输入数据集中的“对象 ID”值以及匹配文件的名称(也可为该文件的完整路径)。 当与添加附件移除附件工具配合使用时,MATCHID 字段将用作将磁盘上的一个或多个文件链接到输入数据集中记录的关键字段。

  • 如果输出匹配表参数值为文件夹,则可通过指定扩展名为 .dbf 的名称来将输出创建为 dBASE 表。 如果输出位置是地理数据库,则匹配表将为地理数据库表(不指定扩展名)。

参数

标注说明数据类型
输入数据集

包含要附加文件的记录的数据集。

Table View
输入文件夹

包含要附加的文件的文件夹。

Folder
输出匹配表

具有 MATCHIDFILENAME 字段的输出匹配表。

Table
关键字段

将使用其中的值来匹配输入文件夹中文件的名称的字段。 匹配行为将对字段值和每个文件名进行比较,而不考虑文件扩展名。 从而使文件扩展名不同的多个文件与输入数据集中的一条记录相匹配。

例如,如果匹配模式参数值为精确,则 lot5986 的字段值将匹配名为 lot5986.jpg 的文件。

Field
输入数据过滤器
(可选)

将用于限制要匹配的文件的数据过滤器。

可以使用通配符 (*) 来获得更灵活的过滤选项。 还支持以分号分隔的多个过滤器。

例如,您的输入目录包含各种文件类型。 要将可能的匹配项限制为仅 .jpg 文件,请使用值 *.jpg。 要将可能的匹配项限制为仅 .pdf.doc 文件,请使用值 *.pdf; *.doc

要将可能的匹配项限制为仅包含文本 arc 的文件名,请使用值 *arc*

String
存储相关路径
(可选)

指定输出匹配表字段 FILENAME 将包含完整路径,还是仅包含文件名。

  • 选中 - 该字段将仅包含文件名(相对路径)。 这是默认设置。
  • 未选中 - 该字段将包含数据的完整路径。

Boolean
匹配模式
(可选)

指定将用于将文件名与指定的关键字段参数值匹配的匹配模式的类型。

  • 精确将匹配与关键字段中的值精确匹配的文件名。 这是默认设置。
  • 前缀将匹配在文件名开头具有关键字段值的文件名。
  • 后缀将匹配在文件名结尾具有关键字段值的文件名。
  • 任何将匹配在文件名中任何位置具有关键字段值的文件名。
String

arcpy.management.GenerateAttachmentMatchTable(in_dataset, in_folder, out_match_table, in_key_field, {in_file_filter}, {in_use_relative_paths}, {match_pattern})
名称说明数据类型
in_dataset

包含要附加文件的记录的数据集。

Table View
in_folder

包含要附加的文件的文件夹。

Folder
out_match_table

具有 MATCHIDFILENAME 字段的输出匹配表。

Table
in_key_field

将使用其中的值来匹配输入文件夹中文件的名称的字段。 匹配行为将对字段值和每个文件名进行比较,而不考虑文件扩展名。 从而使文件扩展名不同的多个文件与输入数据集中的一条记录相匹配。

例如,如果 match_pattern 参数值为 EXACT,则 lot5986 的字段值将匹配名为 lot5986.jpg 的文件。

Field
in_file_filter
(可选)

将用于限制要匹配的文件的数据过滤器。

可以使用通配符 (*) 来获得更灵活的过滤选项。 还支持以分号分隔的多个过滤器。

例如,您的输入目录包含各种文件类型。 要将可能的匹配项限制为仅 .jpg 文件,请使用值 *.jpg。 要将可能的匹配项限制为仅 .pdf.doc 文件,请使用值 *.pdf; *.doc

要将可能的匹配项限制为仅包含文本 arc 的文件名,请使用值 *arc*

String
in_use_relative_paths
(可选)

指定输出匹配表字段 FILENAME 将包含完整路径,还是仅包含文件名。

  • RELATIVE该字段将仅包含文件名(相对路径)。 这是默认设置。
  • ABSOLUTE该字段将包含完整路径。
Boolean
match_pattern
(可选)

指定将用于将文件名与指定的 key_field 参数值匹配的匹配模式的类型。

  • EXACT将匹配与关键字段中的值精确匹配的文件名。 这是默认设置。
  • PREFIX将匹配在文件名开头具有关键字段值的文件名。
  • SUFFIX将匹配在文件名结尾具有关键字段值的文件名。
  • ANY将匹配在文件名中任何位置具有关键字段值的文件名。
String

代码示例

GenerateAttachmentMatchTable 示例 1(Python 窗口)

以下代码片段演示了如何在 Python 窗口中使用 GenerateAttachmentMatchTable 函数。

import arcpy
arcpy.management.GenerateAttachmentMatchTable(
    "C:/data/parcels.gdb/parcels",
    "C:/attachment_folder",
    "C:/data/temp.gdb/matchtable",
    "AttachmentKeyField",
    "*.jpg; *.pdf",
    "ABSOLUTE",
    "EXACT")
GenerateAttachmentMatchTable 示例 2(独立脚本)

以下独立脚本演示了如何使用 GenerateAttachmentMatchTable 函数创建包含 .jpg.pdf 文件的匹配项的匹配表。

# Name: GenerateAttachmentMatchTable_Example.py
# Description: Create an attachment match table for all files that contain the string
# 'property' and are of type 'jpg' while looping through multiple folders.

# Import system modules
import arcpy
import os

# Set local variables.
rootFolder = 'c:/work/'

for folder in os.walk(rootFolder):
    # Exclude file geodatabases from the folder list.
    if folder[0].find('.gdb') == -1:
        arcpy.management.GenerateAttachmentMatchTable(
            "C:/data/parcels.gdb/parcels", folder[0], 
            "C:/data/temp.gdb/matchtable", "AttachmentKeyField", 
            "*property*.jpg", "RELATIVE", "EXACT")

环境

此工具不使用任何地理处理环境。