Python的MS Access库

28 投票
4 回答
100333 浏览
提问于 2025-04-15 12:30

有没有什么库可以在Python中使用MS Access数据库?win32模块没有MySQL库那么简单。有没有更简单的方法可以用Python来操作MS Access?

4 个回答

8

你可以使用 pypyodbc 在win32平台上轻松创建一个空的Access MDB文件,还可以压缩已有的Access MDB文件。

这操作简单得很:

import pypyodbc
pypyodbc.win_create_mdb( "D:\\Your_MDB_file_path.mdb" )

而且,作为一个dbi 2.0 ODBC库,pypyodbc与pyodbc兼容性很好,你可以用这个库进行SQL数据库查询,比如SELECT、INSERT、UPDATE等操作。

这里有一个关于pypyodbc支持Access的完整教程

免责声明:我是pypyodbc的开发者。

13

我觉得win32并不难。你可以试着使用它的odbc模块。下面是一个使用ODBC和PostgreSQL数据库的代码示例:

import odbc

def get_pg_ver(db_alias):
    connection = odbc.odbc(db_alias)
    try:
        cursor = connection.cursor()
        cursor.execute('SELECT version()')
        for row in cursor.fetchall():
            print row[0]
    finally:
        connection.close()

get_pg_ver('odbc_name/user/passwd')

这对我在Python和Jython中使用的每个数据库驱动都很相似(我主要使用PostgreSQL、Oracle和Informix)。

43

根据你想做的事情,pyodbc 可能正是你需要的工具。

import pyodbc

def mdb_connect(db_file, user='admin', password = '', old_driver=False):
    driver_ver = '*.mdb'
    if not old_driver:
        driver_ver += ', *.accdb'

    odbc_conn_str = ('DRIVER={Microsoft Access Driver (%s)}'
                     ';DBQ=%s;UID=%s;PWD=%s' %
                     (driver_ver, db_file, user, password))

    return pyodbc.connect(odbc_conn_str)

conn = mdb_connect(r'''C:\x.mdb''')  # only absolute paths!

注意:如果你没有安装 MSOffice,可以下载这个可以自由分发的新驱动程序

撰写回答