【发布时间】:2019-09-11 20:57:07
【问题描述】:
我在 Mac 上运行 python 3.6。我已经下载了一个 mdb 文件,但没有 Microsoft 访问权限,我想将每个表导入 python 并在那里使用它。
我已安装 mdbtools 并从 Spyder 运行以下命令:
import pandas as pd
import subprocess
import os
os.chdir('<directory where mdb file is>')
def show_tables(path='avroll_19.mdb'):
tables = subprocess.check_output(["mdb-tables", path])
return tables.decode().split()
show_tables()
我收到此错误:FileNotFoundError: [Errno 2] No such file or directory: 'mdb-tables': 'mdb-tables'
我也试过这个,但得到同样的错误:
import pandas_access as mdb
for tbl in mdb.list_tables('avroll_19.mdb'):
print(tbl)
我在 Anaconda 中使用 Sypder,我不确定这是否是个问题。
mdb 文件位于:https://www1.nyc.gov/assets/finance/downloads/tar/avroll_20.zip
我也尝试使用 pyodbc 执行此操作,但是,它所需的驱动程序似乎不适用于 mac。
感谢您的帮助。
【问题讨论】:
-
对于第一个块:访问文件不是可执行文件,因此不清楚您在那里尝试什么。对于第二个块:您是否更改了工作路径?
-
第一个块正在尝试获取 mdb 文件中的表的名称。其次,mdb 文件位于 os.chdir 所引用的目录中。
-
我看到
mdb-tables是一个可执行文件。从来没有听说过。pandas_access看起来是一个较旧的维护模块。我建议让 Windows 朋友/同事从数据库文件中提取所需的数据。
标签: python pandas ms-access mdbtools