如何在arcpy中使用replace函数?

2 投票
2 回答
5691 浏览
提问于 2025-04-18 00:28

我正在尝试使用更新游标来替换字段中的缩写(比如:把ST替换成STREET,把AVE替换成AVENUE等等),但是似乎一直无法成功。我试过各种方法,但显然还是漏掉了什么。代码可以运行,但对字段没有任何改变。有没有什么建议?非常感谢!

import arcpy
from arcpy import env
env.workspace = "C:/data"

fc = "blah.shp"

cursor = arcpy.da.UpdateCursor(fc, ["BLAH_BLAH"])

for row in cursor:
    row = row.replace("ST", "STREET")
    cursor.updateRow(row)

del row
del cursor

2 个回答

1

这里的代码是用来处理一个叫做“table”的数据表,路径是'C:\DATA'。

接下来,使用一个叫做“UpdateCursor”的工具来更新这个数据表中的“ST_NAME”这一列。这个工具会让你逐行访问数据,方便你进行修改。

    for row in cursor:
        if "ST" in row[0]:
           row[0] = row[0].replace("ST", "STREET")
        if "AVE" in row[0]:
            row[0]= row[0].replace("AVE", "AVENUE")
        if "RD" in row[0]:
            row[0]= row[0].replace("RD", "ROAD")
        if "DR" in row[0]:
            row[0]= row[0].replace("DR", "DRIVE")
        if "BLVD" in row[0]:
            row[0]= row[0].replace("BLVD", "BOULEVARD")
        if "PK" in row[0]:
            row[0]= row[0].replace("PK", "PARK")
        cursor.updateRow(row)
1

row 是一个字段的列表,你不能直接用它来访问字段的值。要使用字段的索引来访问,比如:row[0] = row[0].replace("ST", "STREET")

撰写回答