Подтвердить что ты не робот

Библиотека MS Access для python

Есть ли библиотека для использования базы данных MS Access в python? Модуль win32 не так прост, как библиотека MySQL. Есть ли более простой способ использования MS Access с Python?

4b9b3361

Ответ 1

В зависимости от того, что вы хотите сделать, 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.

Ответ 2

Я не думаю, что 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')

Это очень похоже на каждый драйвер db, который я использовал в Python и Jython (я работаю с PostgreSQL, Oracle и Informix).

Ответ 3

Вы можете использовать pypyodbc, чтобы легко создать пустой файл MDB Access на платформе win32, а также скомпилировать существующие файлы MDB Access.

Это может быть так просто:

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

Более того, как библиотека ODBC dbi 2.0, pypyodbc очень совместим с pyodbc, вы можете делать запросы SQL-базы данных, такие как SELECT, INSERT, UPDATE с библиотекой.

Вот полный Tutorial о поддержке доступа pypyodbc.

Отказ от ответственности: я разработчик pypyodbc.

Ответ 4

У меня был недавний успех с использованием модуля pywin32 adodbapi.

Следующий фрагмент был взят из этого веб-сайта:

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()