python创建access数据库_Python使用win32com创建Access数据库

要创建一个新的空.accdb文件,下面的Python代码应该可以做到:import win32com.client

f = 'C:\\Users\\Gord\\Desktop\\pyTest.accdb'

c = win32com.client.Dispatch('ADOX.Catalog')

c.Create('Provider=Microsoft.ACE.OLEDB.12.0;Data Source=' + f + ';')

c = None

print '"' + f + '" created.'

[编辑1]

对博客文章here的评论建议,如果.Create调用生成“类未注册”错误,则可能需要使用regsvr32.exe重新注册{}。尝试此操作时请注意“位性”:这些文件的和都有32位和64位版本:

64位

C: \Windows\System32\regsvr32.exe

C: \程序文件\通用文件\系统\ado\msadox.dll在

32位

C: \Windows\SysWOW64\regsvr32.exe

C: \程序文件(x86)\Common Files\System\ado\msadox.dll在

另外,请注意,您可能正在64位计算机上运行32位Python。在

[编辑2]

我做了一些测试,得出的结论是,这种方法在这种特殊情况下不起作用,因为Python脚本是以64位的身份运行的,但是64位Access数据库引擎没有安装。(32位Office仅安装32位版本的ACE。)

错误信息可能有点误导。丢失的不是ADOX组件(未注册),而是找不到ACE引擎本身的64位版本。在

此外,在安装了32位访问的64位计算机上,64位版本的ACE将永远不可用,因为它无法安装

当您试图从64位Python脚本操作.accdb文件中的数据时,这很可能会产生影响。我的“64位Windows上的32位Office”测试机器上没有Python可用,但是当我尝试下面的VBScript时。。。在

^{pr2}$

…结果如下:C:\__tmp>C:\Windows\System32\cscript.exe /nologo dataAccessTest.vbs

C:\__tmp\dataAccessTest.vbs(4, 1) ADODB.Connection: Provider cannot be found.

It may not be properly installed.

C:\__tmp>C:\Windows\SysWOW64\cscript.exe /nologo dataAccessTest.vbs

This is Table1 data in Access.

脚本在以64位运行时失败,但在以32位运行时正常工作。在

建议:如果您的机器安装了32位访问,那么您最好也将Python脚本作为32位来运行。在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值