Bibliothèque MS Access pour python [dupliquer]

Cette question a déjà une réponse ici:

Existe-t-il une bibliothèque pour utiliser la base de données MS Access en python? Le module win32 n'est pas aussi facile que la bibliothèque MySQL. Existe-t-il un moyen plus simple d'utiliser MS Access avec Python?

22
demandé sur Vicky 2009-06-26 10:07:41

4 réponses

En Fonction de ce que vous voulez faire, pyodbc peut-être ce que vous cherchez.

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)
35
répondu stephan 2016-07-13 21:08:52

Je ne pense pas que win32 soit difficile. Essayez d'utiliser son module odbc. Exemple de code fonctionnant avec la base de données ODBC et 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')

Ceci est très similaire pour tous les pilotes db que J'ai utilisés en Python et Jython (je travaille avec PostgreSQL, Oracle et Informix).

11
répondu Michał Niklas 2009-06-26 06:27:19

Vous pouvez utiliser pypyodbc pour créer facilement un fichier MDB access vide sur la plate-forme win32, ainsi que des fichiers MDB Access existants compacts.

Il peut être aussi facile que:

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

De plus, comme une bibliothèque ODBC dBi 2.0, pypyodbc est hautement compatible avec pyodbc, vous pouvez faire des requêtes de base de données SQL comme SELECT, INSERT, UPDATE avec la bibliothèque.

Voici le tutoriel complet sur le support D'accès de pypyodbc.

Avertissement: je suis le développeur de pypyodbc.

7
répondu pypyodbc 2013-03-11 04:07:52

J'ai eu un certain succès récent en utilisant le module adodbapi de pywin32.

L'extrait suivant a été extrait de ce site 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()
3
répondu gdw2 2011-09-30 15:22:07