如何在arcpy.da.UpdateCursor中实现row[0]等于row[1]时设row[2]为None?
解决arcpy.da.UpdateCursor中按条件设置字段值的问题
问题描述
我正在编写人生第一个Python 2.7脚本,这也是我首次接触Python脚本开发并在此提问。目前几乎所有问题都已解决,唯独无法实现以下需求:在arcpy.da.UpdateCursor中,当row[0]等于row[1]时,将row[2]设为None。
解决代码及方案
import arcpy fc = 'C:/DB/yourDB.gdb/yourFeatureClass.shp' fields = ['field0', 'field1', 'field2'] with arcpy.da.UpdateCursor(fc, fields) as cursor: for row in cursor: if row[0] == row[1]: row[2] = None cursor.updateRow(row) # 注:使用with语句管理游标时,无需手动执行del cursor,with代码块结束后会自动释放资源
关键说明
with语句会自动处理游标资源的创建与释放,避免手动管理资源可能出现的问题- 遍历游标每一行时,通过条件判断修改目标字段值,最后必须调用
cursor.updateRow(row)提交修改才能生效
内容的提问来源于stack exchange,提问作者ZaZa M.
相关产品推荐
相关产品推荐

