我编写了一个快速脚本,根据多边形的轮廓线来确定水深多边形的最小深度:
# Import system modules
import arcpy
import arcpy.da
# Set environment settings
arcpy.env.workspace = "C:\Working"
area ="conta"
line = "contl"
for i in area:
arcpy.SelectLayerByLocation_management(line, 'intersect', area)
arcpy.SelectLayerByAttribute_management(line, 'subset_selection',
"""[DEPTH] in (SELECT min( [DEPTH] ) FROM contl)""")
cursor = arcpy.UpdateCursor(i)
for row in cursor:
row.setValue('DEPTHMIN',row.getValue(line['DEPTH']))
cursor.updateRow(row)
del cursor
这些选择工作正常,但当我试图通过更新光标运行实例时,会出现以下错误:
^{pr2}$我不确定Python正在寻找的"c"
是什么。在
问题就在这里:
arcpy.env.workspace = "C:\Working"
您需要做的是:
arcpy.env.workspace = r"C:\Working"
或者
arcpy.env.workspace = "C:/Working"
编辑: 你的第一个线索是这是一个IO错误。它在输出(“O”部分)到环境路径时遇到问题。这可能是由于许多原因造成的,但是在您的例子中,是路径,它包含转义符
\
来破坏整个过程。因此,您需要使用正斜杠/
,或者在字符串前面加一个r
,以向解释器指示它应该作为raw
字符串来处理。在主要问题是:
area
是一个字符串,因此当您将for i in ...
与string对象一起使用时,您会迭代字符串中的“字符”。迭代的第一步是字母“c”,它不作为数据源存在。在路径问题也必须解决。在
相关问题 更多 >
编程相关推荐