conectar con python ms-access

python - con - pyodbc access



Biblioteca de MS Access para python (4)

Dependiendo de lo que quieras hacer, pyodbc podría ser lo que estás buscando.

import pyodbc db_file = r''''''C:/x.mdb'''''' user = ''admin'' password = '''' odbc_conn_str = ''DRIVER={Microsoft Access Driver (*.mdb)};DBQ=%s;UID=%s;PWD=%s'' %/ (db_file, user, password) # Or, for newer versions of the Access drivers: odbc_conn_str = ''DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=%s;UID=%s;PWD=%s'' %/ (db_file, user, password) conn = pyodbc.connect(odbc_conn_str)

Esta pregunta ya tiene una respuesta aquí:

¿Hay una biblioteca para usar la base de datos MS Access en python? El módulo win32 no es tan fácil como la biblioteca MySQL. ¿Hay alguna manera más simple de usar MS Access con Python?


No creo que win32 sea difícil. Intenta usar su módulo odbc. Ejemplo de código que funciona con base de datos ODBC y 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'')

Esto es muy similar para cada controlador de db que utilicé en Python y Jython (trabajo con PostgreSQL, Oracle e Informix).


Puede usar pypyodbc para crear fácilmente un archivo Access MDB vacío en la plataforma win32, y también compactar los archivos MDB de acceso existentes.

Puede ser tan fácil como:

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

Además, como una biblioteca ODBC dbi 2.0, pypyodbc es altamente compatible con pyodbc, puede hacer consultas de bases de datos SQL como SELECT, INSERT, UPDATE con la biblioteca.

Aquí está el Tutorial completo sobre el soporte de acceso de pypyodbc.

Descargo de responsabilidad: soy el desarrollador de pypyodbc.


Tuve un éxito reciente usando el módulo adodbapi de pywin32.

El siguiente fragmento fue tomado de this sitio web:

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