Python ODBC连接:无效的文件名错误

4
我是新手Python开发者,被指派使用Python将所有MS Access数据库文件(我们有5个)复制到CSV格式。我在Stack Overflow上搜索了很多帖子,并拼凑出了这个业余片段。我需要查看我在MS Access数据库中拥有的文件。请有人提供帮助。 Pyodbc错误-Python到MS Access 在Python中打开访问文件
import pyodbc

conn_string = ("DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=T:\\DataDump\\7.18.2016 PCR etrakit.accdb") 

conn = pyodbc.connect(conn_string)

cursor = conn.cursor()

cursor.close()
conn.close()

print 'All done for now'

文件名中的空格可能是问题所在吗?尝试将文件从7.18.2016 PCR etrakit.accdb重命名为file.accdb,并更新脚本,然后再试一次? - davidejones
将所有MS Access数据库文件复制到CSV格式。您应该意识到关系型数据库与平面文本文件不同,因此在导出MS Access文件中的所有表/查询时应更具体地说明其格式为csv。 - Parfait
2个回答

1
[更新] 尝试运行这个。
conn_string = ("DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=C:\\T:\\DataDump\\7.18.2016 PCR etrakit.accdb")

使用双反斜杠代替。

@学习者 反斜杠字符意味着字符串中的下一个字符具有特殊含义。因此解密双反斜杠……第一个反斜杠告诉Python准备一个特殊的字符串字符,第二个反斜杠是特殊的字符串字符(在这种情况下是反斜杠)。 - Shubham R
@Learner 请查看此链接 - Shubham R
1
是的,那是我用来草拟脚本的帖子之一。 - user6727547
conn_string = ("DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=C:\T:\DataDump\7.18.2016 PCR etrakit.accdb") - Shubham R
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - user6727547
显示剩余3条评论

0

根据这篇文章

尝试将其作为单行处理

conn_string = r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};C:\\T:\\DataDump\\7.18.2016 PCR etrakit.accdb;'

然而,我对你的文件路径有点困惑。在你的 C:\ 根目录下,你有一个名为 T: 的目录?

值得注意的是,带有空格名称的文件路径并不总是按预期处理。另一种方法是尝试转义文件路径中的空格:

conn_string = r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};C:\\T:\\DataDump\\7.18.2016\ PCR\ etrakit.accdb;'

是的,感谢Aaron,那里有一个错字。C根目录不应该在那里。现在,如果你不介意,我怎么能看到我在Access数据库中有哪些文件。 - user6727547
那么,为了澄清,上述解决方案对您有用吗?您能具体说明哪个解决方案起作用了吗?第一个还是第二个解决方案(带转义空格)?还是仅仅是删除文件路径中的C:\部分?至于访问文件,鉴于您现在已经成功连接,这是另一个话题。 - Aaron St. Clair
1
是的,需要删除C:根文件夹。 - user6727547

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接