You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PYODBC连接Access数据库时如何在连接字符串中传入路径变量

问题原因分析
  • 格式化操作顺序错误:你将format()、%格式化操作写在了pyodbc.connect()函数的括号外侧,执行逻辑变成了先把未填充路径的不完整连接字符串传入connect触发报错,再对返回的连接对象做格式化,完全不符合预期。
  • 路径字符串未做转义处理:定义file_path1时没有添加原始字符串前缀r,路径中的反斜杠会被Python识别为转义字符,导致实际传入的路径和预期不一致。
正确实现方式

方法1:先格式化连接字符串再传入connect(format写法)

# 路径字符串加r前缀避免转义
file_path1 = r'\\abc123.org\Team\Resources\Inputs\Accounts.mdb'
# 先完成字符串格式化,再传入connect函数
conn_str = r'Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ={};'.format(file_path1)
conn = pyodbc.connect(conn_str)

方法2:使用f-string格式化(Python3.6及以上推荐)

file_path1 = r'\\abc123.org\Team\Resources\Inputs\Accounts.mdb'
conn_str = rf'Driver={{Microsoft Access Driver (*.mdb, *.accdb)}};DBQ={file_path1};'
conn = pyodbc.connect(conn_str)

方法3:%格式化的正确写法

file_path1 = r'\\abc123.org\Team\Resources\Inputs\Accounts.mdb'
conn_str = r'Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=%s;' % file_path1
conn = pyodbc.connect(conn_str)

方法4:关键字参数传参(最稳妥,避免特殊字符问题)

如果路径包含分号等特殊字符,手动拼接字符串容易出错,直接用pyodbc支持的关键字参数传入配置项即可:

file_path1 = r'\\abc123.org\Team\Resources\Inputs\Accounts.mdb'
conn = pyodbc.connect(
    r'Driver={Microsoft Access Driver (*.mdb, *.accdb)};',
    DBQ=file_path1
)

内容的提问来源于stack exchange,提问作者Scott Thompson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 21:00:02