批量重投影工具,创建没有值的变量

时间:2014-03-07 21:05:49

标签: python

这是一个学校项目。有关此项目的问题已在此处发布(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:“”不存在

1 个答案:

答案 0 :(得分:0)

我认为没有理由将rootName声明为""只是说rootName = currentFC[:-4]应该足够好,特别是如果你只在行rootName上使用newFC = str(rootName) + "_projected.shp"那么下面的代码替换你现在应该工作的东西。

if currentFC.endswith(".shp"):
    rootName = currentFC[:-4]
    newFC = str(rootName) + "_projected.shp"