我需要使用 Python 读取 Microsoft Access 数据库吗?

2024-10-17 08:47:00
admin
原创
75
摘要:问题描述:如何使用 Python 访问 Microsoft Access 数据库?使用 SQL?我更喜欢适用于 Linux 的解决方案,但我也可以接受 Windows。我只需要读取权限。解决方案 1:在 Linux 上,MDBTools 是你现在唯一的机会。[有争议]在 Windows 上,您可以使用 pyp...

问题描述:

如何使用 Python 访问 Microsoft Access 数据库?使用 SQL?

我更喜欢适用于 Linux 的解决方案,但我也可以接受 Windows。

我只需要读取权限。


解决方案 1:

在 Linux 上,MDBTools 是你现在唯一的机会。[有争议]

在 Windows 上,您可以使用 pypyodbc 处理 mdb 文件。

要创建 Access mdb 文件:

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

这是一个 Hello World 脚本,完整演示了 pypyodbc 的 Access 支持功能。

免责声明:我是 pypyodbc 的开发人员。

解决方案 2:

我已经使用PYODBC成功连接到 MS Access 数据库 -在 Windows 上。安装很容易,使用也相当简单,您只需设置正确的连接字符串(列表中给出了 MS Access 的连接字符串),然后就可以开始使用示例了。

解决方案 3:

您已经找到了一些听起来不错的解决方案。另一个可能比您想象的更接近“实际”的解决方案是 MDB 工具。

MDB 工具是一组开源库和实用程序,用于帮助从 MS Access 数据库(mdb 文件)导出数据,而无需使用 Microsoft DLL。因此非 Windows 操作系统可以读取数据。或者,换句话说,它们正在对 MDB 文件的布局进行逆向工程。

还请注意,我怀疑他们是否已经开始研究 ACCDB 文件,并且对该功能的需求可能不会太多。

解决方案 4:

pyodbc怎么样?这个 SO 问题表明可以使用它来读取 MS Access。

解决方案 5:

在 Ubuntu 12.04 上,我按照以下步骤使其工作。

安装 pyodbc:

$ sudo apt-get install python-pyodbc

继续安装一些额外的驱动程序:

$ sudo apt-get install mdbtools libmdbodbc1

制作一个连接到数据库并显示所有表的小测试程序:

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

我希望它有所帮助。

解决方案 6:

老问题了,但我想发布一个适用于 Windows 的 pypyodbc 替代建议:ADO。事实证明,通过 COM 使用现代(而不是老式 ODBC)驱动程序确实很容易访问 Access 数据库、Excel 电子表格和其他任何东西。

请查看以下文章:

解决方案 7:

就我个人而言,我尝试了很多次,但还是没能使 MDB Tools(以及相关的 ODBC 内容,如 unixODBC)在 Linux 下与 Python 或 PHP 正常配合使用。我刚刚尝试了此处此问题的另一个答案中的说明,但得到的只是“分段错误(核心转储)”。

但是,我确实让UCanAccess JDBC 驱动程序从 Jython 或 CPython+JayDeBeApi 读取 Linux 上的 .mdb 和 .accdb 文件。有关如何在 Ubuntu 14.04 LTS 下进行设置的详细说明,请参阅此处的其他回答。

解决方案 8:

最有可能的是,您会想要使用像SQLAlchemy这样的优秀框架来访问您的数据,或者至少我会推荐它。对 Access 的支持是“实验性的”,但我记得使用它时没有太多问题。它本身在底层使用pyodbc连接到 Access dbs,因此它应该可以在 Windows、Linux、OS X 等平台上工作。

解决方案 9:

将 Access 数据库读取为 pandas 数据框(Windows)。

这是一个非常快速且简单的解决方案,我已经成功用于较小的数据库。

您可以通过建立与 Excel 的永久链接并保存该文件(只需单击几下)来读取 Access 数据库,链接如下:

https://support.office.com/en-gb/article/Connect-an-Access-database-to-your-workbook-a3d6500c-4bec-40ce-8cdf-fb4edb723525

然后,您可以简单地将该 Excel 文件读取为 pandas 数据框。

因此,例如,将链接的 Excel 文件保存为位置 \FileStore\subfolder1\subfolder 中的“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 之间的链接是静态的。

解决方案 10:

如果您使用EQL 数据将数据库同步到网络,那么您可以使用 JSON 或 YAML 查询 Access 表的内容:http ://eqldata.com/kb/1002 。

该文章是关于 PHP 的,但它在 Python 中也同样适用。

解决方案 11:

如果你有时间,可以尝试修复和更新这个通过本机 COM32 客户端 API 读取 MS-Access DB 的 python 类:Microsoft Access 的提取和操作类

解决方案 12:

我在 Windows 下使用这种方式将 Python 连接到 MS Access:使用 Python 连接到 MS Access。也许你会在 Win 7 上遇到一些问题,所以我找到了一个解决方案:解决 Windows 7 上 MS Access 和 Python 之间的连接

我还没有尝试过在Linux下连接!

相关推荐
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   601  
  华为IPD与传统研发模式的8大差异在快速变化的商业环境中,产品研发模式的选择直接决定了企业的市场响应速度和竞争力。华为作为全球领先的通信技术解决方案供应商,其成功在很大程度上得益于对产品研发模式的持续创新。华为引入并深度定制的集成产品开发(IPD)体系,相较于传统的研发模式,展现出了显著的差异和优势。本文将详细探讨华为...
IPD流程是谁发明的   7  
  如何通过IPD流程缩短产品上市时间?在快速变化的市场环境中,产品上市时间成为企业竞争力的关键因素之一。集成产品开发(IPD, Integrated Product Development)作为一种先进的产品研发管理方法,通过其结构化的流程设计和跨部门协作机制,显著缩短了产品上市时间,提高了市场响应速度。本文将深入探讨如...
华为IPD流程   9  
  在项目管理领域,IPD(Integrated Product Development,集成产品开发)流程图是连接创意、设计与市场成功的桥梁。它不仅是一个视觉工具,更是一种战略思维方式的体现,帮助团队高效协同,确保产品按时、按质、按量推向市场。尽管IPD流程图可能初看之下显得错综复杂,但只需掌握几个关键点,你便能轻松驾驭...
IPD开发流程管理   8  
  在项目管理领域,集成产品开发(IPD)流程被视为提升产品上市速度、增强团队协作与创新能力的重要工具。然而,尽管IPD流程拥有诸多优势,其实施过程中仍可能遭遇多种挑战,导致项目失败。本文旨在深入探讨八个常见的IPD流程失败原因,并提出相应的解决方法,以帮助项目管理者规避风险,确保项目成功。缺乏明确的项目目标与战略对齐IP...
IPD流程图   8  
热门文章
项目管理软件有哪些?
云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用