【发布时间】:2023-02-16 13:54:51
【问题描述】:
我正在用 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)
del cursor
【问题讨论】:
-
请提供您的代码的minimum reproducible example。此外,快速查看 ArcGIS UpdateCursor 的文档,有一个“代码示例”、“UpdateCursor 示例 1”似乎可以回答您的问题。
-
附带说明一下,如果您是新手学习编程,除非您有非常充分的理由,否则我建议您学习 python3 而不是 python2.7,因为它已经弃用 3 年了,而且我看到 ArcGIS 确实支持蟒蛇3。
-
感谢 EricChen1248 的热心回复!我弄清楚代码出了什么问题。我已经从您提供的链接的页面上看到了该示例,但就在今天,我才知道我需要修改什么。我将在正确的代码下方发表评论。我非常感谢您关于优先选择 Python 3 而不是 2.7 的建议。我完全同意你的看法,但我的脚本将使用的环境基于使用 Python 2.7 的 ArcMap 10.2.2,这就是你提到的“强有力的理由”。我用 Python 3 编写了这个脚本,完成了大约 70% 的功能,然后不得不为 2.7 重写它。
标签: python-2.7 arcpy