Python Pyodbc:Can';t打开lib';Microsoft Access驱动程序(*.mdb,*.accdb)和#x27;:未找到文件(0)
我已经收到一个要打开的Access文件,我正在使用Mac,需要用Python打开它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
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