Arcpy更新游标IO错误“c”不存在

时间:2015-02-20 17:27:02

标签: python arcpy

我写了这个快速脚本来找到分钟。测深多边形的深度基于边界线的等高线:

# 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

选择工作正常,但是当我尝试通过更新游标运行我的实例时,我收到以下错误:

Traceback (most recent call last):
  File "<string>", line 30, in <module>
  File "c:\program files (x86)\arcgis\desktop10.2\arcpy\arcpy\__init__.py", line 1199, in UpdateCursor
    return gp.updateCursor(dataset, where_clause, spatial_reference, fields, sort_fields)
  File "c:\program files (x86)\arcgis\desktop10.2\arcpy\arcpy\geoprocessing\_base.py", line 364, in updateCursor
    self._gp.UpdateCursor(*gp_fixargs(args, True)))
IOError: "c" does not exist

我不确定Python正在寻找的"c"是什么。

2 个答案:

答案 0 :(得分:3)

问题在于:arcpy.env.workspace = "C:\Working"

您需要做的是:

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

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

编辑: 你的第一个线索是IO错误。无法输出(“O”部分)到您的环境路径。这可能由于多种原因而发生,但在您的情况下,它是路径,其中包含转义整个事物的转义字符\。因此,您需要使用正斜杠/或在字符串前放置r,以向解释器指示它应作为raw字符串处理。

答案 1 :(得分:0)

主要问题在于:

area ="conta"
for i in area:

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

路径问题也必须修复。