我喜欢将访问数据库中的表(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")
我收到以下错误消息,
非常感谢任何帮助。先感谢您。
答案 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模块或其他类似的东西。