Python Pyodbc:Can';t打开lib';Microsoft Access驱动程序(*.mdb,*.accdb)和#x27;:未找到文件(0)

Python Pyodbc:Can';t打开lib';Microsoft Access驱动程序(*.mdb,*.accdb)和#x27;:未找到文件(0),python,pyodbc,Python,Pyodbc,我已经收到一个要打开的Access文件,我正在使用Mac,需要用Python打开它 import pyodbc DBfile = '/Users/burfies1/Dropbox/pricing/data.accdb' conn = pyodbc.connect('DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ='+DBfile) cur = conn.cursor() 我得到以下错误 conn = pyodbc.connec

我已经收到一个要打开的Access文件,我正在使用Mac,需要用Python打开它

import pyodbc

DBfile = '/Users/burfies1/Dropbox/pricing/data.accdb' 
conn = pyodbc.connect('DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ='+DBfile)  
cur = conn.cursor()
我得到以下错误

conn = pyodbc.connect('DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ='+DBfile)  #    user/password can be used
pyodbc.Error: ('01000', "[01000] [unixODBC][Driver Manager]Can't open lib 'Microsoft Access Driver (*.mdb, *.accdb)' : file not found (0) (SQLDriverConnect)")

对我来说,最好的解决方案就是安装MDBTools

然后使用mdb导出创建csv

mdb-export data.accdb TABLE > output_file.csv

赵文宇的这篇媒体文章对于使用MacMDBTools将其导入python非常有用,如前一个答案中所述。以下是从他的帖子中粘贴的副本

import pandas as pd
import subprocess


def show_data(path='<file_name>.mdb', table='<table_name>'):
    tables = subprocess.check_output(["mdb-export", path, table])
    return tables.decode().split('\n')

def convert_df(path, table):
    d = show_data(path, table)
    columns = d[0].split(',')
    data = [i.split(',') for i in d[1:]]
    df = pd.DataFrame(columns=columns, data=data)
    return df
将熊猫作为pd导入
导入子流程
def显示_数据(路径='.mdb',表=''):
tables=子流程。检查_输出([“mdb导出”,路径,表])
返回表.decode().split('\n')
def convert_df(路径、表格):
d=显示数据(路径、表格)
列=d[0]。拆分(','))
数据=[i.split(','),用于d[1:]
df=pd.DataFrame(列=列,数据=数据)
返回df

不确定是否匹配的可能重复项,它没有提到我的错误代码或问题,只有Ubuntu的解决方案
Microsoft Access驱动程序(*.mdb,*.accdb)
是Microsoft用于Microsoft Access的ODBC驱动程序的名称。它只适用于Windows。所以,我应该使用什么驱动程序,Jython/UCanAccess对于OSXGood find来说是一个烂摊子!我惊喜地发现,mac上可以通过自制(brew安装mdbtools)使用mdbtools