有人可以告诉我如何进行简单的字段计算,例如在ArcPy中从“A”复制到“B”吗?我在网上发现了很多例子,他们都使用了额外的表达式,而且很复杂。我需要的是像ArcMap Gui:
B = !A!
更新: 这是我到目前为止的代码,但是我在运行它时遇到错误
NameError:未定义名称“A”
point_shp = "G:\\Temp\\All_Provinces.shp"
arcpy.AddField_management(point_shp, "B", "TEXT", "", "", "25", "", "NON_NULLABLE", "NON_REQUIRED", "")
arcpy.CalculateField_management(point_shp, "B", "A", "PYTHON_9.3")
答案 0 :(得分:1)
或者,如果您希望使用VB计算计算字段工具,则可以执行以下操作:
arcpy.CalculateField_management(point_shp, "B","[A]")
只是如果你有一个需要Visual Basic的应用程序。
答案 1 :(得分:0)
好的,我知道了,A必须像"!A!"
arcpy.CalculateField_management(point_shp, "B","!A!", "PYTHON_9.3")
哇这个论坛太棒了!这么多的帮助!
答案 2 :(得分:0)
我会通过使用更新游标来攻击它,但我不知道这是否符合您对简单性的需求。
point_shp = "G:\\Temp\\All_Provinces.shp"
updateCursor = arcpy.UpdateCursor(point_shp)
for row in updateCursor:
a = row.getValue("name of the "a" field name")
b = a # --> any manipulations to b can also go here.. example b = a + c etc...
# --> alternatively if you need to do string manipulations you can always make use of specifiers. such that a = "!%s!" %(a) note:use %d if "a" is a number. This would produce a string "!a!" if you needed it in that format.
row.setValue("name of "b" field", b)
updateCursor.update(row)
以上将允许您获取字段“A”的值,如果需要,可以对这些值执行某些操作并将其存储为b。然后用b填充字段“B”。
注意:如果尚未创建字段B,则需要执行此操作...