我需要什么来阅读使用Python的Microsoft Access数据库?
我如何访问Python中的Microsoft Access数据库? 用SQL?
我会优先考虑一个适用于Linux的解决scheme,但我也可以适应Windows。
我只需要读取权限。
我已经使用PYODBC成功连接到MS Access数据库 – 在Windows上。 安装很简单,用法相当简单,你只需要设置正确的连接string(MS Access的一个在列表中给出)和你去的例子。
在Linux上,MDBTools是你现在唯一的机会。 [争议]
在Windows上,您可以使用pypyodbc处理mdb文件。
创build一个Access mdb文件:
import pypyodbc pypyodbc.win_create_mdb( "D:\\Your_MDB_file_path.mdb" )
这是一个Hello World脚本 ,完全解除了pypyodbc的Access支持function。
免责声明:我是pypyodbc的开发者。
如何pyodbc ? 这个问题表明可以使用它读取MS Access。
你有听起来像一些很好的解决scheme。 另一个比你想要的更接近“金属”的是MDB Tools。
MDB工具是一组开源的库和实用程序,以方便从MS Access数据库(mdb文件)导出数据,而无需使用Microsoft DLL。 因此非Windows操作系统可以读取数据。 或者,换句话说,他们是逆向工程的MDB文件的布局。
另外请注意,我怀疑他们已经开始处理ACCDB文件,可能不会有太多的要求。
老问题,但我想我会发布一个pypyodbc替代Windows的build议:ADO。 事实certificate,通过COM访问Access数据库,Excel电子表格和其他任何具有现代(而不是老式的ODBC)驱动程序的东西是非常容易的。
看看下面的文章:
最有可能的是,你会希望使用像SQLAlchemy这样的好框架来访问你的数据,或者至less我会推荐它。 对Access的支持是“实验性的”,但我记得使用它没有太多的问题。 它本身使用引擎盖下的pyodbc来连接到Access dbs,所以它应该可以从windows,linux,os x和其他软件上运行。
在Ubuntu 12.04上,我做了这个工作。
安装pyodbc:
$ sudo apt-get install python-pyodbc
按照安装一些额外的驱动程序:
$ sudo apt-get install mdbtools libmdbodbc1
制作一个连接到数据库并显示所有表的小testing程序:
import os import pyodbc db_path = os.path.join("path", "toyour", "db.mdb") odbc_connection_str = 'DRIVER={MDBTools};DBQ=%s;' % (db_path) connection = pyodbc.connect(odbc_connection_str) cursor = connection.cursor() query = "SELECT * FROM MSysObjects WHERE Type=1 AND Flags=0" cursor.execute(query) rows = cursor.fetchall() for row in rows: print row
我希望它有帮助。
就我个人而言,即使经过多次尝试,我也从来没有能够获得MDB工具(以及相关的ODBC工具,如unixODBC),以便在Linux下正确使用Python或PHP。 我只是尝试了这个问题的其他答案的指示,我得到的是“分段错误(核心转储)”。
但是,我确实得到了Jython和UCanAccess JDBC驱动程序来读取Linux上的.mdb和.accdb文件。 有关如何在Ubuntu 14.04 LTS下设置的详细说明,请参阅此处的其他答案。
将Access数据库读取为pandas数据框(Windows)。
这是一个非常快速和简单的解决scheme,我成功地用于小型数据库。
您可以通过永久链接到Excel并保存该文件(需要几次点击)来阅读Access数据库,链接如下:
然后,您可以简单地将该Excel文件读取为pandas数据框。
因此,例如,将链接的Excel文件保存为位于\ FileStore \ subfolder1 \子文件夹中的“link_to_master.xlsx”。
在python中运行以下代码:
import pandas as pd import os os.chdir('\\\\FileStore\\subfolder1\\subfolder') #sets the folder location df = pd.read_excel('link_to_master.xlsx') # reads the Excel file df
如果您正在重新访问您的Python脚本,请考虑链接刷新的频率。 即Excel和Access之间的链接是静态的。
如果使用EQL Data将数据库同步到Web,则可以使用JSON或YAML查询Access表的内容: http : //eqldata.com/kb/1002 。
那篇文章是关于PHP的,但是它在Python中也会起作用。
如果您有一些空闲时间,可以尝试修复和更新这个通过本机COM32客户端API读取MS-Access数据库的python类: Microsoft Access的提取和操作类
在Windows下将Python 连接到MS Access的方式是使用这种方法: 使用Python连接到MS Access 。 也许你可以在Win 7上find一些麻烦,所以我find了一个解决scheme: 在Windows 7上解决MS Access和Python之间的连接
我没有尝试在Linux下连接!