Python:使用ArcPy:对访问表进行排序并转换为地理数据库表

时间:2013-03-12 15:14:52

标签: python-2.7 arcpy

我喜欢将访问数据库中的表(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")

我收到以下错误消息,

enter image description here

非常感谢任何帮助。先感谢您。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

要关注@Evan,如果表格预先存在,您可以删除该表格。

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

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

arcpy.env.overwriteOutput=True

如果arcpy没有真正识别这个表类型,那么你可以做一个类似的“if-exists”的东西,只需要python的os模块或其他类似的东西。