2009-06-26 13 views
21

¿Hay una biblioteca para usar la base de datos de 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?Biblioteca de MS Access para python

Respuesta

32

Según lo que desee hacer, pyodbc podría ser lo que está 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) 
+0

gracias por eso amigo. Me siento cómodo con esto :) – Vicky

+1

@Cristian Ciupitu: gracias por agregar el código de muestra – stephan

+3

La dirección correcta para asegurarse. La única edición que tuve que hacer fue '* .mdb, * .accdb' en lugar de' * .mdb' – demongolem

10

No creo que win32 sea difícil. Intenta usar su módulo odbc. Ejemplo de código de trabajo con la 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 conductor db I usado en Python y Jython (I trabajo con PostgreSQL, Oracle y Informix).

+0

De acuerdo: 'odbc' funciona bien con M $ Access. – bernie

+0

muchas gracias amigo – Vicky

+0

Necesito consultar desde otra tabla dentro del ciclo for. ¿Como hacer eso? – Nayan

3

Tuve algunos éxitos recientes usando el módulo adodbapi de pywin32.

El siguiente fragmento fue tomado de this página 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() 
7

Puede utilizar pypyodbc para crear fácilmente un archivo MDB de acceso vacío en la plataforma Win32, y acceder a archivos MDB también compactos existentes.

Puede ser tan fácil como:

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

Más encima, como una biblioteca DBI 2.0 ODBC, pypyodbc es altamente compatible con pyodbc, se 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.

+0

¡Hola! ¿Cómo puedo usar la contraseña en mi archivo db usando pypyodbc ..? Encontré pypyodbc muy útil para mí. – Tirthajust4u