这是一个学校项目。有关此项目的问题已在此处发布(https://www.e-education.psu.edu/geog485/node/131)。
我的老师为要插入我们脚本的类提供了Python代码。基本上它从文件名中删除“.shp”,然后追加“_projected.shp”。这是我在脚本中提供的代码:
rootName = ""
if currentFC.endswith(".shp"):
rootName = currentFC[:-4]
newFC = str(rootName) + "_projected.shp"
Python不喜欢rootName变量的值(IOError:“”不存在)。 由于这个代码是给我的,我认为它会起作用,但我也可能会犯一个新手错误,认为该变量是如何被声明的。
如果需要,我可以提供其余的脚本
这是追溯:
追踪(最近一次通话): 在RunScript中的文件“C:\ Python27 \ ArcGIS10.1 \ Lib \ site-packages \ pythonWin \ Lib \ site-packages \ pythonwin \ pywin \ framework \ scriptutils.py”,第325行 exec codeObject在 main ._ dict _中 文件“C:\ Users \ dan和kathryn \ Desktop \ school \ programming \ project2 \ project2.py”,第15行,in targetDesc = arcpy.Describe(targetFC) 文件“C:\ Program Files(x86)\ ArcGIS \ Desktop10.1 \ arcpy \ arcpy__init __。py”,第1190行,在描述中 返回gp.describe(值) 文件“C:\ Program Files(x86)\ ArcGIS \ Desktop10.1 \ arcpy \ arcpy \ geoprocessing_base.py”,第374行,描述 self._gp.Describe(* gp_fixargs(args,True))) IOError:“”不存在
答案 0 :(得分:0)
我认为没有理由将rootName声明为""
只是说rootName = currentFC[:-4]
应该足够好,特别是如果你只在行rootName
上使用newFC = str(rootName) + "_projected.shp"
那么下面的代码替换你现在应该工作的东西。
if currentFC.endswith(".shp"):
rootName = currentFC[:-4]
newFC = str(rootName) + "_projected.shp"