0

我喜欢将 access 数据库中的表(100+)转换为地理数据库表,对它们进行排序并同时删除每个表中不必要的字段。我想我使用 Sort_management 方法来转换和排序表,然后使用 DeleteFieldd_management 方法来删​​除字段。这是我写的代码,

import arcpy

from arcpy import env

env.workspace = "E:\Database Project\ACS Estimate 2011\ACS 2011 Tables.mdb"

tableList = arcpy.ListTables()

for table in tableList:

    out_dataset = "E:\Database Project\ACS Estimate 2011\Data\To Database\Seq Tables.gdb"

    #Process: Sort
    arcpy.Sort_management(table, out_dataset, "GEOID ASCENDING", "UR")

    #Process: Delete Field
    arcpy.DeleteField_management(out_dataset, "FILEID;FILETYPE;STUSAB;CHARITER")

我收到以下错误消息,

在此处输入图像描述

任何帮助是极大的赞赏。先感谢您。

4

2 回答 2

0

跟随@Evan,如果表格已经存在,您可以删除它。

if arcpy.Exists(out_dataset):
    arcpy.Delete_management(out_dataset)

另外,如果我知道我将一遍又一遍地重新创建一个表并且我不想在我的代码中写这样的检查,我使用:

arcpy.env.overwriteOutput=True

如果 arcpy 不能真正识别此表类型,那么您可以使用 python 的 os 模块或其他类似的东西来做一个类似的“如果存在”的事情。

于 2013-04-23T17:36:48.977 回答
0

在进入循环之前尝试设置out_dataset(紧接着tableList = arcpy.ListTables()看看它是否超过了“已经存在”的错误。

于 2013-03-12T17:30:28.727 回答