如何从Python脚本压缩和修复Access数据库

时间:2015-12-10 12:43:08

标签: python-2.7 ms-access arcgis

我有一个从ArcGIS自定义工具箱运行的python脚本。该脚本处理Access数据库(主要是个人地理数据库)。我想知道的是,有没有办法从我的python脚本压缩和修复访问数据库(特别是个人gdb)?

提前感谢您的任何帮助和建议,

本。

2 个答案:

答案 0 :(得分:3)

使用Python的win32com库并调用VBA方法CompactRepair()。请注意,在此过程中需要一个备份文件路径(一个尚不存在的路径),但在成功压缩后可以删除,使用os.remove()满足该需求:

import os
import win32com.client

srcDB = 'C:\\Path\\To\\Database.accdb'
destDB = 'C:\\Path\\To\\Database_backup.accdb'

oApp = win32com.client.Dispatch("Access.Application")
oApp.compactRepair(srcDB, destDB)

os.remove(destDB)
oApp = None  

答案 1 :(得分:0)

我知道这已经过时了,但是对于将来使用它的人来说只是对上面代码的一个小改动(我现在必须使用它,感谢Parfait发布此解决方案)。

说明的一行:

oApp = win32com.client.Dispatch("Access.Application")

应该是

oApp = win32com.Dispatch("Access.Application")

谢谢!