Python 使用按位置选择图层语法时遇到一些问题

Python 使用按位置选择图层语法时遇到一些问题,python,arcpy,wing-ide,Python,Arcpy,Wing Ide,我的指示: 创建一个Python脚本,从“coa_parcels.shp”中选择地块 与shapefile“floodplains.shp”相交并创建新的 仅包含选定地块的形状文件 工作空间和三个形状文件(coa_地块、, 洪泛区和输出)应视为用户定义的输入 使用“原始输入”语句 下面是此部分脚本的伪代码示例: 开始 获取工作区的用户输入 获取输入要素类名称的用户输入(例如coa_parcels.shp) 获取所选要素类名称的用户输入(例如floodplains.shp) 获取输出要素类名称的

我的指示:

创建一个Python脚本,从“coa_parcels.shp”中选择地块 与shapefile“floodplains.shp”相交并创建新的 仅包含选定地块的形状文件

工作空间和三个形状文件(coa_地块、, 洪泛区和输出)应视为用户定义的输入 使用“原始输入”语句

下面是此部分脚本的伪代码示例:

  • 开始
  • 获取工作区的用户输入
  • 获取输入要素类名称的用户输入(例如coa_parcels.shp)
  • 获取所选要素类名称的用户输入(例如floodplains.shp)
  • 获取输出要素类名称的用户输入(例如,选定的_parcels.shp)
  • 设置工作区并覆盖输出设置
  • 创建临时要素图层
  • 基于“选择要素类”,按位置从图层中选择
  • 将选定要素复制到新要素类
  • 打印一条消息,让用户知道新要素类已创建
  • 结束
我的剧本:

import arcpy

workSpace = raw_input("What is the workspace location? ")
inFeature = raw_input("What is the input feature class name? ")
selFeature = raw_input("What is the select feature class name? ")
outFeature = raw_input("What is the output feature class name? ")

arcpy.env.workspace = workSpace
arcpy.env.overwriteOutput = True
arcpy.MakeFeatureLayer_management("coa_parcels.shp", "lyr") 
arcpy.SelectLayerByLocation_management(coa_parcels.shp,"INTERSECT",floodplains.shp, "NEW_SELECTION")
arcpy.CopyFeatures_management("lyr", "selected_parcels")
print "A new feature class",outFeature,"has been created!"here

我的错误是:名称错误:未定义名称“coa_parcels”

仔细查看引发错误的行:

arcpy.SelectLayerByLocation_management(coa_parcels.shp,
通过不在引号中包含图层名称,您向Python表明它应该使用变量
coa_parcels
作为参数输入到“按位置选择图层”工具



“生成要素图层”工具不会主动创建形状文件,这与您的错误无关。没有什么可以阻止您在图层名称中包含
.shp
(很明显,因为这不是错误产生的地方!),但对于“最佳实践”,我建议您更清楚地命名图层,这样您就不会意外地尝试将图层传递给只接受形状文件的工具。

未定义名称“coa_地块”。看看它的其他实例,它可能应该是一个字符串而不是标识符(=您忘记了引号)。不要发布排版错误问题的完整答案-它们没有任何重用价值。