基于Python的值删除Arc Map中的单个行

时间:2014-12-09 22:27:37

标签: python row arcmap

我在使用Python脚本删除shapefile属性表中的单行时遇到困难。我想要做的是删除任何ID值为0的行。我已经使用所有行的脚本被删除了。例如,我尝试了很多脚本(注意"最终"在这种情况下是我的shapefile)。

fieldsNew = arcpy.ListFields(final)

listID = []
for field in fieldsNew:
        header = ("{0}".format(field.name))
        string = str(header)
        if string.startswith('ID'):
            listID .append(string)

for j in listID:
        curObjX = arcpy.UpdateCursor(final)
        for rowX in curObjX:
            rowValue = rowX.getValue(j)    
            if rowValue != 0:
                pass

            else:
                print rowX
                curObjX.deleteRow(rowX)

rows = arcpy.UpdateCursor(final)
fields = arcpy.ListFields(final)



for row in rows:
    for field in fields:
        if field.name == 'ID':
            value = row.getValue(field.name)
            if value == 0:
                print row
                rows.deleteRow(row)
            else:
                pass

提前致谢

1 个答案:

答案 0 :(得分:1)

如果在python窗口中运行ArcMap内的脚本,则可以执行以下操作:

>>> import arcpy
>>> arcpy.SelectLayerByAttribute_management("final","NEW_SELECTION",'"Id" = 0')
>>> arcpy.DeleteFeatures_management("final")

如果您在ArcMap环境之外运行脚本,那么您只需要设置工作目录并在执行选择之前将脚本指向“final.shp”。

希望这会有所帮助