Python使用pypyodbc连接Access数据库完整指南
本文详细介绍如何在Python中利用pypyodbc模块连接并操作Access数据库。内容涵盖pypyodbc的安装方法、Windows系统下ODBC数据源的配置步骤,以及使用win_connect_mdb进行数据库连接、游标创建、SQL查询执行和结果遍历的完整代码示例。
环境准备与模块安装
在Python环境中访问Access数据库,推荐使用 pypyodbc 模块。该模块在Python 3.6.1等版本中表现稳定。安装过程十分简单,只需通过命令行工具执行pip命令即可:
pip install pypyodbc安装成功后,系统Python环境(例如 C:\Python36\Lib\site-packages)下会自动生成 pypyodbc 目录,表明模块已就绪。
配置ODBC数据源
在编写Python代码之前,必须在Windows系统中配置好ODBC数据源,这是建立连接的关键前提:
- 打开控制面板,进入“管理工具”,找到并点击“数据源(ODBC)”。
- 在“用户DSN”或“系统DSN”选项卡中,点击“添加”按钮。
- 在驱动程序列表中选择
Microsoft Access Driver (*.mdb, *.accdb)。 - 在配置界面中,为数据源设置一个名称(例如
addresses),并通过“选择...”按钮指向D盘上已存在的addresses.mdb文件。
注意: 代码中使用的驱动字符串必须与配置数据源时选择的驱动完全一致,否则会导致连接失败。
Python连接与操作代码
配置完成后,可以通过以下Python代码实现数据库的连接、查询及结果输出:
import pypyodbc
import time
# 定义连接字符串,指定驱动和数据库路径
str_conn = 'Driver={Microsoft Access Driver (*.mdb,*.accdb)};DBQ=D:\\addresses.mdb'
# 使用win_connect_mdb建立连接(推荐)
db = pypyodbc.win_connect_mdb(str_conn)
# 创建游标对象
curser = db.cursor()
# 执行SQL查询:按ID降序获取所有记录
curser.execute("select * from address order by id desc")
# 打印列名信息
for col in curser.description:
print(col[0], col[1])
# 获取所有结果集
result = curser.fetchall()
# 遍历并输出每一行的数据
for row in result:
print(row)
# 输出特定字段(例如第2、3列)
print(row[1], row[2])
# 处理时间字段(假设第4列是时间戳)
timeTuple = time.localtime(row[3])
print(time.strftime('%Y/%m/%d', timeTuple))常见问题与注意事项
在连接过程中,可能会遇到一些特定的错误,建议注意以下几点:
- 连接方法选择: 尽量使用
pypyodbc.win_connect_mdb函数,直接使用pypyodbc.connect有时会出现兼容性问题或连接错误。 - 加密数据库: 如果Access数据库文件设置了密码,必须在连接字符串的
DBQ参数前添加PWD=YourPWD参数,否则无法打开数据库。







以上就是Python通过pypyodbc访问Access数据库的详细内容,更多关于Python数据库操作、pypyodbc用法及Access连接技巧的资料请关注本站其它相关文章!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









