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

2025-04-10 09:44:00
admin
原创
24
摘要:问题描述:如何使用 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下连接!

相关推荐
  政府信创国产化的10大政策解读一、信创国产化的背景与意义信创国产化,即信息技术应用创新国产化,是当前中国信息技术领域的一个重要发展方向。其核心在于通过自主研发和创新,实现信息技术应用的自主可控,减少对外部技术的依赖,并规避潜在的技术制裁和风险。随着全球信息技术竞争的加剧,以及某些国家对中国在科技领域的打压,信创国产化显...
工程项目管理   2482  
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   1533  
  PLM(产品生命周期管理)项目对于企业优化产品研发流程、提升产品质量以及增强市场竞争力具有至关重要的意义。然而,在项目推进过程中,范围蔓延是一个常见且棘手的问题,它可能导致项目进度延迟、成本超支以及质量下降等一系列不良后果。因此,有效避免PLM项目范围蔓延成为项目成功的关键因素之一。以下将详细阐述三大管控策略,助力企业...
plm系统   0  
  PLM(产品生命周期管理)项目管理在企业产品研发与管理过程中扮演着至关重要的角色。随着市场竞争的加剧和产品复杂度的提升,PLM项目面临着诸多风险。准确量化风险优先级并采取有效措施应对,是确保项目成功的关键。五维评估矩阵作为一种有效的风险评估工具,能帮助项目管理者全面、系统地评估风险,为决策提供有力支持。五维评估矩阵概述...
免费plm软件   0  
  引言PLM(产品生命周期管理)开发流程对于企业产品的全生命周期管控至关重要。它涵盖了从产品概念设计到退役的各个阶段,直接影响着产品质量、开发周期以及企业的市场竞争力。在当今快速发展的科技环境下,客户对产品质量的要求日益提高,市场竞争也愈发激烈,这就使得优化PLM开发流程成为企业的必然选择。缺陷管理工具和六西格玛方法作为...
plm产品全生命周期管理   0  
热门文章
项目管理软件有哪些?
曾咪二维码

扫码咨询,免费领取项目管理大礼包!

云禅道AD
禅道项目管理软件

云端的项目管理软件

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

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

内置subversion和git源码管理

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

免费试用