谁能告诉我如何在python中打开.mdb文件的正确方向?我通常喜欢在讨论开始时加入一些代码,但我不知道从哪里开始。我经常使用mysql和python。我想知道是否有一种方法可以以类似的方式处理.mdb文件?
发布于 2010-09-02 04:10:19
下面是我为another SO question编写的一些代码。
它需要第三方pyodbc module。
这个非常简单的示例将连接到一个表,并将结果导出到一个文件。
如果您有任何更具体的需求,请随时扩展您的问题。
import csv, pyodbc
# set up some constants
MDB = 'c:/path/to/my.mdb'
DRV = '{Microsoft Access Driver (*.mdb)}'
PWD = 'pw'
# connect to db
con = pyodbc.connect('DRIVER={};DBQ={};PWD={}'.format(DRV,MDB,PWD))
cur = con.cursor()
# run a query and get the results
SQL = 'SELECT * FROM mytable;' # your query goes here
rows = cur.execute(SQL).fetchall()
cur.close()
con.close()
# you could change the mode from 'w' to 'a' (append) for any subsequent queries
with open('mytable.csv', 'w') as fou:
csv_writer = csv.writer(fou) # default field-delimiter is ","
csv_writer.writerows(rows)
发布于 2017-03-05 23:20:28
有一个可以通过mdbtools读取Microsoft Access数据库的meza library by Reuben Cummings。
安装
# The mdbtools package for Python deals with MongoDB, not MS Access.
# So install the package through `apt` if you're on Debian/Ubuntu
$ sudo apt install mdbtools
$ pip install meza
用法
>>> from meza import io
>>> records = io.read('database.mdb') # only file path, no file objects
>>> print(next(records))
Table1
Table2
…
发布于 2015-11-12 02:08:34
除了bernie的回应之外,我还想补充说,有可能恢复数据库的模式。下面的代码列出了表(b2包含表的名称)。
con = pyodbc.connect('DRIVER={};DBQ={};PWD={}'.format(DRV,MDB,PWD))
cur = con.cursor()
tables = list(cur.tables())
print 'tables'
for b in tables:
print b
下面的代码列出了所有表中的所有列:
colDesc = list(cur.columns())
https://stackoverflow.com/questions/3620539
复制相似问题