用于python的MS Access库

时间:2009-06-26 06:07:41

标签: python ms-access

在python中是否有用于使用MS Access数据库的库? win32模块并不像MySQL库那么容易。有没有更简单的方法来使用Python的MS Access?

4 个答案:

答案 0 :(得分:38)

根据您的目的,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 ,则可以下载可自由再发布的new-driver

答案 1 :(得分:12)

我不认为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)。

答案 2 :(得分:7)

您可以使用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支持的完整Tutorial

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

答案 3 :(得分:3)

我最近使用pywin32的adodbapi模块取得了一些成功。

以下摘录摘自this网站:

import adodbapi

database = "db1.mdb"
constr = 'Provider=Microsoft.Jet.OLEDB.4.0; Data Source=%s'  % database
tablename = "address"

# connect to the database
conn = adodbapi.connect(constr)

# create a cursor
cur = conn.cursor()

# extract all the data
sql = "select * from %s" % tablename
cur.execute(sql)

# show the result
result = cur.fetchall()
for item in result:
    print item

# close the cursor and connection
cur.close()
conn.close()