2013-03-12 3 views
0

Мне нравится преобразовывать таблицы (100+), живущие в базе данных доступа, в таблицы базы геоданных, сортируя их и удаляя ненужные поля в каждой таблице одновременно. Я решил использовать метод Sort_management для преобразования и сортировки таблиц, а затем методом DeleteFieldd_management для удаления полей. Вот код, который я написал,Python: Использование ArcPy: сортировка таблиц доступа и преобразование в таблицы базы геоданных

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

Любая помощь очень ценится. Заранее спасибо.

ответ

0

out_dataset Try установки перед входом в цикл (сразу после tableList = arcpy.ListTables() и посмотреть, если он получает мимо «уже существует» ошибка.

0

следовать на @Evan, вы можете удалить таблицу, если она предварительно не существует.

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

Кроме того, если я знаю, что буду воссоздавать стол снова и снова, и я не хочу, чтобы выписывать чеки, как это в мой код, я использую:

arcpy.env.overwriteOutput=True 

Если этот тип таблицы на самом деле не распознан дугой, то вы можете сделать аналогичную вещь «если есть» с помощью только os-модуля python или что-то еще вдоль этих строк.

 Смежные вопросы

  • Нет связанных вопросов^_^