Сводка
Этот инструмент производит удаление одного или нескольких полей из класса пространственных объектов, таблицы, слоя объектов или набора растровых данных.
Использование
Этот инструмент может использовать любую таблицу; класс пространственных объектов многопользовательской, файловой или персональной баз геоданных; покрытие; набор растровых данных или шейп-файл.
Невозможно удалить поля из не нативных форматов, использующихся в ArcGIS только для чтения, например, наборов данных VPF и CAD.
Для параметра Удалить поле кнопка Добавить поле используется только в ModelBuilder. В ModelBuilder, если предыдущий инструмент не был запущен и не существует его производных данных, параметр Удалить поле не заполняется именами полей. Кнопка Добавить поле позволяет добавлять нужные поля, так что вы можете завершить диалоговое окно Удалить поле и продолжить построение модели.
Синтаксис
arcpy.management.DeleteField(in_table, drop_field)
Параметр | Объяснение | Тип данных |
in_table | Таблица, содержащая поля, которые будут удалены. Существующая входная таблица будет изменена. | Mosaic Layer; Raster Catalog Layer; Raster Layer; Table View |
drop_field [drop_field,...] | Поля, которые будут удалены из входной таблицы. Можно удалить только необязательные поля. | Field |
Пример кода
DeleteField, пример (окно Python)
Следующий скрипт окна Python показывает, как использовать инструмент DeleteField в режиме прямого запуска:
import arcpy
arcpy.env.workspace = "C:/data"
arcpy.CopyFeatures_management("majorrds.shp", "C:/output/majorrds_copy.shp")
arcpy.DeleteField_management("C:/output/majorrds_copy.shp",
["STREET_NAM", "LABEL", "CLASS"])
DeleteField, пример 2 (автономный скрипт)
В следующем автономном скрипте показано, как использовать инструмент DeleteField.
# Name: DeleteField_Example2.py
# Description: Delete several fields from a feature class
# Import system modules
import arcpy
# Set environment settings
arcpy.env.workspace = "C:/data"
# Set local variables
inFeatures = "accident.dbf"
outFeatureClass = "C:/output/new_accident.dbf"
dropFields = ["STREET_NAM", "LABEL", "CLASS"]
# Execute CopyFeatures to make a new copy of the feature class
# Use CopyRows if you have a table
arcpy.CopyFeatures_management(inFeatures, outFeatureClass)
# Execute DeleteField
arcpy.DeleteField_management(outFeatureClass, dropFields)
DeleteField, пример 3 (автономный скрипт)
Используйте инструмент DeleteField, чтобы удалить все необходимые поля из класса пространственных объектов или таблицы.
# Name: DeleteFields_clearfields.py
# Description: Delete unrequired fields from a feature class or table.
# Import system modules
import arcpy
try:
# Get user-supplied input and output arguments
inTable = arcpy.GetParameterAsText(0)
updatedTable = arcpy.GetParameterAsText(1)
# Describe the input (need to test the dataset and data types)
desc = arcpy.Describe(updatedTable)
# Make a copy of the input (so we can mantain the original as is)
if desc.datasetType == "FeatureClass":
arcpy.CopyFeatures_management(inTable, updatedTable)
else:
arcpy.CopyRows_management(inTable, updatedTable)
# Use ListFields to get a list of field objects
fieldObjList = arcpy.ListFields(updatedTable)
# Create an empty list that will be populated with field names
fieldNameList = []
# For each field in the object list, add the field name to the
# name list. If the field is required, exclude it, to prevent errors
for field in fieldObjList:
if not field.required:
fieldNameList.append(field.name)
# dBASE tables require a field other than an OID and Shape. If this is
# the case, retain an extra field (the first one in the original list)
if desc.dataType in ["ShapeFile", "DbaseTable"]:
fieldNameList = fieldNameList[1:]
# Execute DeleteField to delete all fields in the field list.
arcpy.DeleteField_management(updatedTable, fieldNameList)
except Exception as err:
print(err.args[0])
Параметры среды
Информация о лицензиях
- Basic: Да
- Standard: Да
- Advanced: Да