Eliminar adjuntos (Administración de datos)

Resumen

Elimina los adjuntos de la clase de entidad de geodatabase o de los registros de tabla. Debido a que los adjuntos en realidad no se almacenan en el datase de entrada, no se harán cambios a esa tabla o clase de entidad, sino más bien en la tabla de geodatabase relacionada que almacena los adjuntos y mantiene el vínculo con el dataset de entrada. Se usa una tabla de coincidencia para identificar a qué registros de entrada (o grupos de registros de atributos) se les eliminarán los adjuntos.

Ilustración

Ilustración de Quitar adjuntos

Uso

  • Una alternativa para utilizar esta herramienta es eliminar los registros seleccionados de la tabla InputDataset__ATTACH en la misma geodatabase que el Dataset de entrada, que almacena los adjuntos y mantiene vínculos con el Dataset de entrada.

Sintaxis

arcpy.management.RemoveAttachments(in_dataset, in_join_field, in_match_table, in_match_join_field, {in_match_name_field})
ParámetroExplicaciónTipo de datos
in_dataset

Clase de entidad o tabla de geodatabase de la cual eliminar adjuntos. Los adjuntos no se eliminan directamente de esta tabla, sino más bien de la tabla de adjuntos relacionada que almacena los adjuntos. El Dataset de entrada debe estar en una geodatabase versión 10 o más reciente y la tabla debe tener habilitados adjuntos.

Table View
in_join_field

El campo del Dataset de entrada que tiene valores que coinciden con los valores en el Campo de unión de coincidencias. A los registros que tienen valores de campos de unión que coinciden entre el Dataset de entrada y la Tabla de coincidencias se les quitarán los adjuntos. Este campo puede ser un campo de ID de objeto o cualquier otro atributo de identificación.

Field
in_match_table

Tabla que identifica a qué registros de entrada se les eliminarán los adjuntos.

Table View
in_match_join_field

Al campo de la tabla de coincidencias que indica a qué registros en el Dataset de entrada se le quitarán adjuntos específicos. Este campo puede tener valores que coinciden con las ID de los objetos del Dataset de entrada u otro atributo que los identifique.

Field
in_match_name_field
(Opcional)

Campo de la tabla de coincidencias que tiene los nombres de los adjuntos que deben quitarse de los registros del Dataset de entrada. Si no se especifica un campo de nombre, se quitarán todos los adjuntos de cada registro especificado en el Campo de unión de coincidencias. Si se especifica un campo de nombre, pero un registro tiene un valor nulo o vacío en el campo de nombre, se eliminarán todos los adjuntos de ese registro. Los valores de este campo deben ser nombres cortos del adjunto a eliminar, no las rutas completas de estos archivos que se usan para crear los adjuntos originales.

Field

Salida derivada

NombreExplicaciónTipo de datos
out_dataset

El dataset de entrada actualizado.

Vista de tabla

Muestra de código

Ejemplo 1 RemoveAttachments (ventana de Python)

El siguiente fragmento de código ilustra la forma en que se debe usar la herramienta RemoveAttachments en la ventana de Python.

import arcpy
arcpy.RemoveAttachments_management(r"C:\Data\City.gdb\Parcels", "ParcelID", 
                                   r"C:\Data\matchtable.csv", "ParcelID", 
                                   "Picture")
Ejemplo 2 de RemoveAttachments (script independiente)

El siguiente script ilustra la forma en que se debe usar la herramienta RemoveAttachments en una secuencia de comandos independiente.

# Delete unnecessary attachments from a feature class
import arcpy
import csv
input = r"C:\Data\City.gdb\Parcels"
inputField = "ParcelID"
matchTable = r"C:\Data\matchtable.csv"
matchField = "ParcelID"
nameField = "Picture" 
# Create a new Match Table csv file that will tell the RemoveAttachments tool 
# which attachments to delete
writer = csv.writer(open(matchTable, "wb"), delimiter=",")
# write a header row (the table will have two columns: ParcelID and Picture)
writer.writerow([matchField, nameField])
# create a list of the attachments to delete
# removes attachments pic1a.jpg and pic1b.jpg from feature 1, pic3.jpg from 
# feature 3, and pic4.jpg from feature 4.
deleteList = [[1, "pic1a.jpg"], [1, "pic1b.jpg"], [3, "pic3.jpg"], [4, "pic4.jpg"]]
# iterate through the delete list and write it to the Match Table csv
for row in deleteList:
    writer.writerow(row)
del writer
# use the match table with the Remove Attachments tool
arcpy.RemoveAttachments_management(input, inputField, matchTable, matchField, 
                                   nameField)

Información de licenciamiento

  • Basic: No
  • Standard: Sí
  • Advanced: Sí

Temas relacionados