如何使用python处理.mdb访问文件

Ric*_*ard 40 python ms-access

有人能指出我在如何在python中打开.mdb文件的正确方向吗?我通常喜欢包含一些代码来开始讨论,但我不知道从哪里开始.我使用python使用mysql.我想知道是否有办法以类似的方式使用.mdb文件?

ber*_*nie 47

下面是我为另一个SO问题编写的一些代码.
它需要第三方pyodbc模块.

这个非常简单的示例将连接到表并将结果导出到文件.
您可以根据自己的具体需求随意扩展您的问题.

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', 'wb') as fou:
    csv_writer = csv.writer(fou) # default field-delimiter is ","
    csv_writer.writerows(rows)
Run Code Online (Sandbox Code Playgroud)

  • 这似乎不适用于 Linux,因为默认情况下 pyodbc 没有包含用于读取 Access 的驱动程序。“未找到数据源名称,并且未指定默认驱动程序 (0) (SQLDriverConnect)” (3认同)
  • @bernie 有没有办法在 linux 中做到这一点? (3认同)
  • 在较新的 Access 版本中,它应该是“Microsoft Access Driver (*.mdb, *.accdb)”。 (3认同)
  • @jsc123 有关适用于 Linux 的解决方案,请参阅 [我的回答](http://stackoverflow.com/a/33662056/2144390)。 (2认同)

jnn*_*nns 12

还有的由鲁本卡明斯梅萨库可通过读取Microsoft Access数据库mdbtools

安装

# 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
Run Code Online (Sandbox Code Playgroud)

用法

>>> from meza import io

>>> records = io.read('database.mdb') # only file path, no file objects
>>> print(next(records))

Table1
Table2
…
Run Code Online (Sandbox Code Playgroud)

  • 适用于 Linux(在 CenOs 7 和 Ubuntu 中使用 python 2.7 测试),从 .mdb 文件读取数据的非常简单的方法。谢谢 ;-) (2认同)