由于错误的命名约定导致的arcpy.CopyFeatures_management错误

时间:2015-04-03 19:48:17

标签: python arcpy

我有一个脚本可以下载zip文件并每天提取shapefile。这样可以正常工作,但shapefile的格式始终为" polygons.yyyymmdd.shp"

尝试将此文件复制到地理数据库时,我一直遇到错误。我猜是因为shapefile名称中有一段时间(不知道为什么他们使用这种命名结构)。

错误是" RuntimeError:Object:执行工具"

时出错
shpList = arcpy.ListFeatureClasses()
print shpList
>>>[u'polygons.20150316.shp']

polyFc = "C:\\data\\work.gdb\\" + "polyFc"
arcpy.CopyFeatures_management(shpList, polyFc)

2 个答案:

答案 0 :(得分:2)

地理处理工具将反对shapefile(和dbase文件),其名称中包含额外的句点。在将文件与CopyFeatures和其他工具一起使用之前,需要重命名文件。

folder, shp_name = os.path.split(shp)
name = os.path.splitext(shp_name)[0]

for file_name in os.listdir(folder):
    if file_name.startswith(name):
        os.rename(os.path.join(folder, file_name),
                  os.path.join(folder, file_name.replace('.', '_', 1)))

答案 1 :(得分:0)

# I renamed using the following:
for filename in os.listdir("."):
    print filename
    if filename.startswith("polygons"):
        os.rename(filename, "a" + filename[9:])

# To import the shapefile into my geodb I converted the list to string first
shp = '\n'.join(shpList)
arcpy.FeatureClassToFeatureClass_conversion(shp, outWorkspace, "polyToday")