如何在 Python 中转换、排序和保存到 CSV MS Access 数据库 .mdb 文件
Posted
技术标签:
【中文标题】如何在 Python 中转换、排序和保存到 CSV MS Access 数据库 .mdb 文件【英文标题】:How to convert, sort and save to CSV MS Access database .mdb file in Python 【发布时间】:2013-06-12 02:46:58 【问题描述】:我尝试研究答案,但未能找到好的解决方案。我有带有奇怪扩展名.res 的文件。有人告诉我它们是 MS Access 文件。不确定它们是否与 .mdb 相同,但我能够在 MS Access 中打开它们。如何打开这些文件、提取必要的数据、对数据进行排序并生成 .csv 文件?我尝试在 Linux 上使用这个脚本:http://mazamascience.com/WorkingWithData/?p=168 和 mdb 工具。我在终端中得到了一些带有错误的输出,但生成的所有文件都是空白的。这可能是由于编码。我不确定。我认为该文件采用 ASCII 编码。
Error: Table fo_Table
Smart_Battery_Data_Table
MCell_Aci_Data_Table
Aux_Global_Data_Table
Smart_Battery_Clock_Stretch_Table
does not exist in this database.
在 Windows 上,我不知道该怎么做。我现在的第一步就是将该数据库文件中的必要表转储到 .csv 中。但理想情况下,我需要脚本来获取文件、对其进行排序、提取必要的数据、进行一些计算(比如一列中的数据除以另一列中的数据)并将所有这些内容保存到漂亮的 .csv 中。 非常感谢。我不是一个经验丰富的程序员,所以请原谅。
【问题讨论】:
【参考方案1】:使用通用 pyodbc 库应该可以做到。看起来它已经有一个嵌入式 MS 访问驱动程序。 This question 可能会帮助你。
我没有任何 MS Access 数据库文件(我已经很久没有使用它们了),但是按照 the examples 你的代码应该是这样的:
import pyodbc
db_file = r'''/path/to/the/file.res'''
user = 'admin'
password = 'password'
odbc_conn_str = 'DRIVER=Microsoft Access Driver (*.mdb);DBQ=%s;UID=%s;PWD=%s' % (db_file, user, password)
conn = pyodbc.connect(odbc_conn_str)
cursor = conn.cursor()
cursor.execute("select * from table order by some_column")
for row in cursor.fetchall():
print ", ".join((row.column1, row.column2, row.columnN))
【讨论】:
谢谢。但我无法连接到我的 .mdb 文件。能够使用 mdb toos 提取数据,但我不知道哪种方法更好。有些人告诉我 mdb 工具会弄乱数据,而另一些人则说 mdbtools 很棒。嗯。以上是关于如何在 Python 中转换、排序和保存到 CSV MS Access 数据库 .mdb 文件的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 python 和 pandas 将 Csv 文件转换为 libsvm?