ArcPy / Python:如何将单词添加到该字符串特定单词前面的字符串中?

时间:2014-08-18 20:24:58

标签: python string arcpy

我正在使用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%'""") ...

感谢您的帮助。

1 个答案:

答案 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

短而甜蜜。谢谢你的期待!