如何使用Python创建.MDB并导入CSV文件

2 投票
2 回答
2479 浏览
提问于 2025-04-17 08:42

有没有人能给个例子,说明怎么创建一个新的Access数据库,并把一个CSV文件(只导入特定的字段)导入到这个数据库里?

谢谢!

2 个回答

1

你可以使用 PyPyODBC 来实现这个功能。

如果你想创建一个 Access 的 mdb 文件,可以使用下面的代码:

import pypyodbc
pypyodbc.win_create_mdb( "D:\\Your MDB file path.mdb" )

如果你愿意的话,可以继续使用 pypyodbc 来连接刚创建的 mdb 文件,并通过类似 pyodbc 的 ODBC 接口来操作它们:

conn = pypyodbc.connect(u'''Driver={Microsoft Access Driver (*.mdb)};DBQ='''+mdb_path
                    , unicode_results = True
                    , readonly = False)

cur = conn.cursor()
cur.execute ('Drop table pypyodbc_test_tabl')
cur.execdirect(u"""create table pypyodbc_test_tabl (ID integer PRIMARY KEY,product_name text)""")

...
cur.close()
conn.commit()
conn.close()

最后,如果你想压缩一个已经存在的 Access mdb 文件,可以使用下面的代码:

pypyodbc.win_compact_mdb("D:\\The path to the original to be compacted mdb file"
                   ,"D:\\The path to put the compacted new mdb file")
2

这里有一个想法和一个链接供你进一步了解:

我还没有测试下面的方法来创建新的mdb文件,所以效果可能会有所不同!

import win32com.client
eng=win32com.client.gencache.EnsureDispatch("DAO.DBEngine.36")
eng.CreateDatabase("c:\\myNewAccessdB.mdb", win32com.client.constants.dbLangGeneral)

这里有一个链接,里面有一些关于使用Python和ADO的好信息。

希望这对你有帮助。

~M

抱歉,我没有关于如何将csv文件导入空的mdb文件的例子 :( 如果我有任何新的想法,我会再发布的。

撰写回答