使用Python将MS Access表直接导出到csv

使用Python将MS Access表直接导出到csv,python,csv,ms-access,Python,Csv,Ms Access,我有一个数据库和巨大的表。通过pyodbc加载和处理它们需要很长时间,因此没有选择 目前,我正在手动将更新的表从MS Access导出到.csv中,然后将它们加载到python中 现在我想通过python自动化这个过程。我也看到过类似的问题 我的代码: import os import win32com.client current_PATH = os.getcwd() db_PATH = current_PATH+"\\database.accdb;"

我有一个数据库和巨大的表。通过pyodbc加载和处理它们需要很长时间,因此没有选择

目前,我正在手动将更新的表从MS Access导出到.csv中,然后将它们加载到python中

现在我想通过python自动化这个过程。我也看到过类似的问题

我的代码:

    import os
    import win32com.client

    current_PATH = os.getcwd()
    db_PATH = current_PATH+"\\database.accdb;"

    oApp = win32com.client.Dispatch("Access.Application")
    oApp.OpenCurrentDatabase(db_PATH)

    acExportDelim = 2
    oApp.DoCmd.TransferText(acExportDelim, None, "table_to_export", 'Output.csv', True)

    oApp.DoCmd.CloseDatabase
    oApp.Quit
    oApp = None
但我得到的回应是:

    Traceback (most recent call last):
    File "C:\Users\...\export_script.py", line 9, in <module>
    oApp.OpenCurrentDatabase(db_PATH)
    File "<COMObject Access.Application>", line 3, in OpenCurrentDatabase
    File "C:\Anaconda3\lib\site-packages\win32com\client\dynamic.py", line 282, in _ApplyTypes_
    result = self._oleobj_.InvokeTypes(*(dispid, LCID, wFlags, retType, argTypes) + args)
    [Finished in 6.9s with exit code 1]
回溯(最近一次呼叫最后一次):
文件“C:\Users\…\export\u script.py”,第9行,在
oApp.OpenCurrentDatabase(db_路径)
OpenCurrentDatabase中第3行的文件“”
文件“C:\Anaconda3\lib\site packages\win32com\client\dynamic.py”,第282行,在\u ApplyTypes中_
结果=self.\u oleobj.\u.InvokeTypes(*(dispid、LCID、wFlags、retType、argTypes)+args)
[在6.9秒内完成,退出代码为1]
将表格导出为.csv的正确方法是什么

编辑:这就是我的测试表的外观:

请发布整个回溯,因为通常在最后会输出错误消息。另外,删除
db_path
中的分号。这是我得到的全部回溯。我确实删除了分号,但我仍然得到相同的回溯。你删除了分号吗?这可能是由于您的IDE或Anaconda安装了win32com。你能用命令行运行它吗(PowerShell或Cmd提示符):
python c:\path\to\script.py
。我确实删除了分号。当我通过CMD运行它时,我得到了一个额外的信息:它说:
pywintypes.com_error(-2147352567,'Ausnahmefehler aufgetreten.',(0,无,'Das feldrenzeichen für de angegebene Textdatei entspricht Dezimaltrennzeichen order textnzeichen.'jeterr40.chm',5003411,2146824847),无)
它是德语,告诉我分隔符与十进制分隔符相同。但我并没有设置自定义分隔符,所以它应该采用系统默认的分隔符。您可以包含前几行数据以用于可复制的示例吗?此外,请尝试使用Access上的功能区(外部数据选项卡/文本文件导出-向外箭头)从表手动导出。错误是否再次发生?