Удалить строки (Delete Rows) (Управление данными)
Резюме
Удаляет все или выбранный поднабор строк из входных данных.
Если входными строками являются класс пространственных объектов или таблица, все строки будут удалены. Если входные строки из слоя или представления таблицы без выборки, удаляются все строки.
Использование
-
Параметр Входные строки (Input Rows) может быть задан как таблица INFO или dBASE, таблица ArcSDE, файловая или персональная база геоданных, либо как класс пространственных объектов, шейп-файл, слой или представление таблицы.
-
Если этот инструмент используется на векторных данных, будет удалена вся строка, включая геометрию.
-
Если слой или представление таблицы являются входными данными без выборки, удаляются все строки. Если входными данными является таблица, удаляются все строки.
Примечание:Удаление всех строк из таблицы с большим их количеством может занять много времени. Если вы желаете удалить все строки из такой таблицы, лучше воспользоваться инструментом Сократить таблицу (Truncate Table). Обратитесь к документации инструмента Сократить таблицу (Truncate Table) и обратите внимание на предостережения по его использованию.
-
При работе в ArcMap и использовании слоя или представления таблицы с выборкой в качестве входных данных применение этого инструмента в сеансе редактирования позволит отменить операцию Удалить объекты (Delete Features) с помощью функции Отменить/Повторить.
Синтаксис
Параметр | Объяснение | Тип данных |
in_rows |
Класс пространственных объектов, слой, таблица или представление таблицы, строки которых будут удалены. | Table View |
Пример кода
Пример скрипта Python для выполнения функции Удалить строки (Delete Rows) с запуском из окна Python в ArcGIS.
import arcpy
from arcpy import env
env.workspace = "C:/data"
arcpy.CopyRows_management("accident.dbf", "C:/output/accident2.dbf")
arcpy.DeleteRows_management("C:/output/accident2.dbf")
Пример скрипта Python для выполнения функции Удалить строки (Delete Rows), чтобы удалить строки на основе выражения.
# Name: DeleteRows_Example2.py
# Description: Delete rows from a table based on an expression
# Import system modules
import arcpy
from arcpy import env
try:
# Set environment settings
env.workspace = "C:/data"
# Set local variables
inTable = "accident.dbf"
outTable = "C:/output/new_accident.dbf"
tempTableView = "accidentTableView"
expression = arcpy.AddFieldDelimiters(tempTableView, "Measure") + " = 0"
# Execute CopyRows to make a new copy of the table
arcpy.CopyRows_management(inTable, outTable)
# Execute MakeTableView
arcpy.MakeTableView_management(outTable, tempTableView)
# Execute SelectLayerByAttribute to determine which rows to delete
arcpy.SelectLayerByAttribute_management(tempTableView, "NEW_SELECTION", expression)
# Execute GetCount and if some features have been selected, then execute
# DeleteRows to remove the selected rows.
if int(arcpy.GetCount_management(tempLayer).getOutput(0)) > 0:
arcpy.DeleteRows_management(tempLayer)
except Exception as e:
# If an error occurred, print line number and error message
import traceback
import sys
tb = sys.exc_info()[2]
print("Line {0}".format(tb.tb_lineno))
print(e.message)