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

2024-09-29 02:16:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在和Arcpy一起编辑大型形状文件。我目前正在使用UpdateCursor函数来查找和更新基于特性名称的type属性。在这种情况下,根据单词light将浮标更改为lighted浮标,或者在要素名称中显示lighted。我使用的基本块如下所示。在

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)

问题是我必须对我数据中的每种浮标都这样做。我有十几种颜色,横向和非横向浮标要处理。我知道我可以为我的每一个案例重复这一块,得到一个可行的脚本,但那会很麻烦,我正在努力学习如何使我的代码更优雅、更高效。对于
cursor = arcpy.UpdateCursor(navp,"""TYPEC LIKE'%BUOY%' AND NAME LIKE'%Lighted%' OR NAME LIKE'%Light%'""")??在

谢谢你的帮助。在


Tags: orandname名称cursorlikerowarcpy
1条回答
网友
1楼 · 发布于 2024-09-29 02:16:08

所以我解决了我自己的问题。我只需要检查一下我内置的字符串格式化函数。我在我的.UpdateCursor for循环中使用了.replace(),然后替换相应的子字符串。这是我最后的代码块。在

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

又短又甜。谢谢你的关注!在

相关问题 更多 >