Python Arcpy,基于字符串的一部分选择要素

Python Arcpy,基于字符串的一部分选择要素,python,string,select,arcpy,Python,String,Select,Arcpy,以我为例,我有一个大型的州立公园形状文件,其中一些是真正的公园,而另一些只是小径。但是,没有列定义哪些是小径与实际公园,我想选择那些是小径并将其删除。我确实为每个功能的名称设置了一列,通常在字符串的某个地方包含单词“trail”。然而,它并不总是在开头或结尾 我只在基本层面上熟悉Python,虽然我可以手动选择我想要的,但我很好奇它是否可以自动化。我一直在使用arcpy.Select\u分析,并尝试在我的where\u子句中使用“LIKE”,还看到了使用切片的示例,但未能获得有效的解决方案。我也

以我为例,我有一个大型的州立公园形状文件,其中一些是真正的公园,而另一些只是小径。但是,没有列定义哪些是小径与实际公园,我想选择那些是小径并将其删除。我确实为每个功能的名称设置了一列,通常在字符串的某个地方包含单词“trail”。然而,它并不总是在开头或结尾

我只在基本层面上熟悉Python,虽然我可以手动选择我想要的,但我很好奇它是否可以自动化。我一直在使用arcpy.Select\u分析,并尝试在我的where\u子句中使用“LIKE”,还看到了使用切片的示例,但未能获得有效的解决方案。我也尝试过使用'is in'函数,但我不确定我是否正确地使用where_子句。我可能只是没有很好地掌握在询问和搜索时使用的适当术语。感谢您的帮助。我一直在使用ArcMap10.3中的Python窗口

目前我在:

arcpy.Select_分析(“stateparks”、“notrails”、“trail”在“SITE_NAME”中)


尽管使用Select工具是一个不错的选择,但是SQL表达式的语法可能是一个挑战。考虑使用AN来解决这个问题。

import arcpy

stateparks = r"C:\path\to\your\shapefile.shp"
notrails = r"C:\path\to\your\shapefile_without_trails.shp"

# Make a copy of your shapefile
arcpy.CopyFeatures_management(stateparks, notrails)

# Check if "trail" exists in the string--delete row if so
with arcpy.da.UpdateCursor(notrails, "SITE_NAME") as cursor:
    for row in cursor:
        if "trails" in row[0]: # row[0] refers to the current row in the "SITE_NAME" field
            cursor.deleteRow() # Delete the row if condition is true

对不起,这么久了,但这成功了!非常感谢。起初,没有一行被删除,直到我意识到搜索字符串是区分大小写的。啊!再次感谢您抽出时间!