首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 更多程式設計知識

Linux 下使用 Python 透過 ODBC 存取 MDB (Access) 資料庫

     編輯:更多程式設計知識

Linux 原生不支援 Microsoft Access ODBC 驅動程式,需安裝 mdbtools、unixODBC、libmdbodbc 並設定資料源名稱 (DSN),才能透過 pyodbc 連線查詢 .mdb 檔案。本文以 Debian 系統為例說明完整步驟。

安裝套件


sudo apt-get update
sudo apt-get install mdbtools unixodbc libmdbodbc

若找不到 libmdbodbc,可將 Debian Squeeze 源加入 /etc/apt/sources.list:


deb https://ftp.de.debian.org/debian squeeze main

再執行 apt-get update && apt-get install libmdbodbc。

設定 ODBC

/etc/odbcinst.ini(驅動程式定義)


[MDBToolsODBC]
Description = MDB Tools ODBC
Driver = /usr/lib/libmdbodbc.so.0
Setup =
FileUsage =
CPTimeout =
CPReuse =

/etc/odbc.ini 或 ~/.odbc.ini(資料源定義)


[test]
Description = Microsoft Access Try DB
Driver = MDBToolsODBC
Database = /path/to/mdb/file/test.mdb
Servername = localhost
Username =
Password =
Port = 5432

Python 程式碼範例


import pyodbc

conn = pyodbc.connect('DSN=test')
cursor = conn.cursor()
cursor.execute('SELECT * FROM "省"')  # 中文表名需雙引號
for row in cursor.fetchall():
    print(row.Name)

注意事項

  • 中文表名、欄位名必須用雙引號括住,否則語法錯誤。
  • pyodbc 預設不使用 Unicode 處理資料,中文編碼問題常見,建議連線字串加入 charset=utf-8 或升級新版 pyodbc。
  • MDB Tools 對複雜查詢(JOIN、子查詢)支援有限,大型資料庫建議遷移至 PostgreSQL/MySQL。
  • 64 位元系統需安裝 64 位元 ODBC 驅動,否則 Python 64 位元無法載入。

替代方案

若僅需單次匯出,可使用 mdb-export 命令列工具直接匯出 CSV:


mdb-export /path/to/file.mdb TableName > output.csv

此方案適合舊系統資料遷移或唯讀查詢場景。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved