我正在使用Arcpy编辑大型shapefile。我目前正在使用UpdateCursor
功能根据功能的名称查找和更新类型属性。在这种情况下,根据灯光或灯光在功能名称中将浮标变为点亮的浮标。我使用的基本块如下。
cursor = arcpy.UpdateCursor(navp,"""TYPEC = 'LATERAL BUOY' AND NAME LIKE'%Lighted%' OR NAME LIKE'%Light%'""")
for row in cursor:
row.setValue('TYPEC',"LATERAL LIGHTED BUOY")
cursor.updateRow(row)
问题是我必须为我的数据中的每种类型的浮标执行此操作。我有十几种颜色,横向和非横向浮标来处理。我知道我可以为我的每一个案例重复这个块,并获得一个可行的脚本,但这将是混乱的,我试图学习如何使我的代码更优雅,更有效。有什么方法可以简单地放弃" LIGHTED"对于由选择的所有功能,在BUOY
前面
cursor = arcpy.UpdateCursor(navp,"""TYPEC LIKE'%BUOY%' AND NAME LIKE'%Lighted%' OR NAME LIKE'%Light%'""")
...
感谢您的帮助。
答案 0 :(得分:0)
所以我解决了自己的问题。我只需要检查我内置的字符串格式化功能。我在.UpdateCursor中使用.replace()for循环查找,然后替换相应的子字符串。这是我的最终代码块。
cursor = arcpy.UpdateCursor(navp,"""TYPEC LIKE'%BUOY%' AND NAME LIKE'%Light%'""")
for row in cursor:
row.setValue('TYPEC',row.getValue("TYPEC").replace("BUOY","LIGHTED BUOY"))
cursor.updateRow(row)
del cursor
短而甜蜜。谢谢你的期待!