Arcpy Update Cursor IO error“c”不存在

2024-06-16 10:52:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我编写了一个快速脚本,根据多边形的轮廓线来确定水深多边形的最小深度:

# 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"是什么。在


Tags: inimport脚本forlinearea多边形management
2条回答

问题就在这里:arcpy.env.workspace = "C:\Working"

您需要做的是:

arcpy.env.workspace = r"C:\Working"

或者

arcpy.env.workspace = "C:/Working"

编辑: 你的第一个线索是这是一个IO错误。它在输出(“O”部分)到环境路径时遇到问题。这可能是由于许多原因造成的,但是在您的例子中,是路径,它包含转义符\来破坏整个过程。因此,您需要使用正斜杠/,或者在字符串前面加一个r,以向解释器指示它应该作为raw字符串来处理。在

主要问题是:

area ="conta"
for i in area:

area是一个字符串,因此当您将for i in ...与string对象一起使用时,您会迭代字符串中的“字符”。迭代的第一步是字母“c”,它不作为数据源存在。在

路径问题也必须解决。在

相关问题 更多 >