Reading MS Access MDB Files on Mac

… when you have to do it

Wenyu Zhao
1 min readApr 11, 2018
“The back of the lid of an open MacBook laptop” by Marcin Nowak on Unsplash

Installations on Terminal

Install Homebrew, if you don’t have it

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"Install mdbtools

Install mdbtools

brew install mdbtools

Install meza (optional)

pip install meza

Python Code for Reading Data

Get table from a mdb file

import pandas as pd
import subprocess

def show_tables(path='<file_name>.mdb'):
tables = subprocess.check_output(["mdb-tables", path])
return tables.decode().split()

Get data from a table

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

What was useless for me

  1. FreeTDS
  2. sqlalchemy’s access dialect
  3. pypyodbc, which only works for Windows
  4. pyodbc
  5. MS Excel

--

--

Wenyu Zhao

Quantitative researcher in the Financial Services industry