PYODBC 在连接字符串中传递变量
PYODBC pass variable in connection string
我正在尝试使用 pyodbc 连接到 MS Access 数据库 (.mdb)。以下连接字符串工作正常:
conn = pyodbc.connect(r'Driver={Microsoft Access Driver (*.mdb, *.accdb)};'
r'DBQ=\abc123.org\Team\Resources\Inputs\Accounts.mdb;')
我需要遍历多个文件,因此我尝试为文件路径传递一个变量。变量将来自列表,但作为示例:
file_path1 = '\abc123.org\Team\Resources\Inputs\Accounts.mdb'
conn = pyodbc.connect(r'Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ={};').format(file_path1)
我收到以下错误:
错误:('HY000', '[HY000] [Microsoft][ODBC Microsoft Access Driver] 不是有效的文件名。(-1044) (SQLDriverConnect); [HY000] [Microsoft][ODBC Microsoft Access Driver] 不是有效文件名。(-1044)')
我在尝试时收到同样的错误:
conn = pyodbc.connect(r'Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=%s;') % file_path1
对于如何在连接字符串中将文件路径作为变量传递的任何帮助,我们将不胜感激!
我想我明白了。
file_path1 = '\abc123.org\Team\Resources\Inputs\Accounts.mdb'
conn = pyodbc.connect(r'Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ={};'.format(file_path1))
#^ format method is call on the string
你能看出区别吗?
您所做的是在 connect
方法上调用格式。
你在第二次尝试时也有同样的问题
conn = pyodbc.connect(r'Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=%s;' % file_path1)
#^ I have moved the parenthesis
谢谢@Paulo - 我用你的回复和 pathlib 解决了这个问题:
import pathlib
file_path1 = pathlib.Path(r'\abc123.org\Team\Resources\Inputs\Accounts.mdb')
conn = pyodbc.connect(r'Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=%s;' % file_path1)
我正在尝试使用 pyodbc 连接到 MS Access 数据库 (.mdb)。以下连接字符串工作正常:
conn = pyodbc.connect(r'Driver={Microsoft Access Driver (*.mdb, *.accdb)};'
r'DBQ=\abc123.org\Team\Resources\Inputs\Accounts.mdb;')
我需要遍历多个文件,因此我尝试为文件路径传递一个变量。变量将来自列表,但作为示例:
file_path1 = '\abc123.org\Team\Resources\Inputs\Accounts.mdb'
conn = pyodbc.connect(r'Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ={};').format(file_path1)
我收到以下错误: 错误:('HY000', '[HY000] [Microsoft][ODBC Microsoft Access Driver] 不是有效的文件名。(-1044) (SQLDriverConnect); [HY000] [Microsoft][ODBC Microsoft Access Driver] 不是有效文件名。(-1044)')
我在尝试时收到同样的错误:
conn = pyodbc.connect(r'Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=%s;') % file_path1
对于如何在连接字符串中将文件路径作为变量传递的任何帮助,我们将不胜感激!
我想我明白了。
file_path1 = '\abc123.org\Team\Resources\Inputs\Accounts.mdb'
conn = pyodbc.connect(r'Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ={};'.format(file_path1))
#^ format method is call on the string
你能看出区别吗?
您所做的是在 connect
方法上调用格式。
你在第二次尝试时也有同样的问题
conn = pyodbc.connect(r'Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=%s;' % file_path1)
#^ I have moved the parenthesis
谢谢@Paulo - 我用你的回复和 pathlib 解决了这个问题:
import pathlib
file_path1 = pathlib.Path(r'\abc123.org\Team\Resources\Inputs\Accounts.mdb')
conn = pyodbc.connect(r'Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=%s;' % file_path1)