在Linux中通过Python脚本访问mdb数据库的方法


Posted in Python onMay 06, 2015

在 linux 系统中连接 mdb 数据库,直接连接的话,mdb 默认的驱动无法识别非 windows 的路径, 所以不能使用常规的连接方式

DRIVER={Microsoft Access Driver (*.mdb)};DBQ=c:\\dir\\file.mdb

安装

这里我们需要借助一些库来实现第三方的驱动

我们需要安装这些包:mdbtools, unixODBC, libmdbodbc

如果是支持 deb 的系统中,如果不能找到 libmdbodbc ,将以下路径加入到软件源列表中

deb http://ftp.de.debian.org/debian squeeze main

更新源后即可可以安装 libmdbodbc 了
配置

安装了需要的包后,需要做一些配置,才能支持 libmdbodbc 的驱动

/etc/odbcinst.ini
[MDBToolsODBC]

Description = MDB Tools ODBC

Driver = /usr/lib/libmdbodbc.so.0

Setup =

FileUsage =

CPTimeout =

CPReuse =

/etc/odbc.ini 或者 ~/.odbc.ini

[test]

Description = Microsoft Access Try DB

Driver = MDBToolsODBC

Database = /path/to/mdb/file/test.mdb

Servername = localhost

Username =

Password =

port = 5432

代码

配置好数据源后,就可以用于任何支持 odbc 访问的应用中了,这里以 pyodbc 为例

#-*- coding: utf-8 -*-
import pyodbc

conn = pyodbc.connect('DSN=test');
cursor = conn.cursor()
cursor.execute('select * from "省"')
for row in cursor.fetchall():
 print row.Name

注:如果是操作名称中文的表或者字段等,需要将其包含在双引号中,不然会出错,当然,将表名做成中文这么二的做法, 还是不推荐使用的啦

pyodbc 是个很不错的库,api 也很好用,不过对中文支持的并不好,它并没有默认以 unicode 处理数据,所以对于中文相关的应用, 编码问题无处不在,只得慢慢折腾了。

Python 相关文章推荐
python字典序问题实例
Sep 26 Python
python统计一个文本中重复行数的方法
Nov 19 Python
python同时给两个收件人发送邮件的方法
Apr 30 Python
Python中if __name__ == '__main__'作用解析
Jun 29 Python
解读Django框架中的低层次缓存API
Jul 24 Python
Python cookbook(数据结构与算法)筛选及提取序列中元素的方法
Mar 19 Python
pandas去重复行并分类汇总的实现方法
Jan 29 Python
基于Python2、Python3中reload()的不同用法介绍
Aug 12 Python
python路径的写法及目录的获取方式
Dec 26 Python
windows安装python超详细图文教程
May 21 Python
图文详解matlab原始处理图像几何变换
Jul 09 Python
如何利用Python实现n*n螺旋矩阵
Jan 18 Python
python中黄金分割法实现方法
May 06 #Python
使用rpclib进行Python网络编程时的注释问题
May 06 #Python
pymongo给mongodb创建索引的简单实现方法
May 06 #Python
Python中用PIL库批量给图片加上序号的教程
May 06 #Python
python写入中英文字符串到文件的方法
May 06 #Python
python使用xlrd模块读写Excel文件的方法
May 06 #Python
在Python中使用全局日志时需要注意的问题
May 06 #Python
You might like
php模拟用户自动在qq空间发表文章的方法
2015/01/07 PHP
Yii2实现上下联动下拉框功能的方法
2016/08/10 PHP
PHP利用超级全局变量$_GET来接收表单数据的实例
2016/11/05 PHP
Laravel框架实现多个视图共享相同数据的方法详解
2019/07/09 PHP
php使用json-schema模块实现json校验示例
2019/09/28 PHP
PHP优化之批量操作MySQL实例分析
2020/04/23 PHP
页面中js执行顺序
2009/11/09 Javascript
hover的用法及live的用法介绍(鼠标悬停效果)
2013/03/29 Javascript
JS中的this变量的使用介绍
2013/10/21 Javascript
js简单实现竖向tab选项卡的方法
2015/05/04 Javascript
jquery实现顶部向右伸缩的导航区域代码
2015/09/02 Javascript
jquery判断input值不为空的方法
2016/06/05 Javascript
jQuery过滤选择器经典应用
2016/08/18 Javascript
原生JS下拉加载插件分享
2016/12/26 Javascript
解决vue keep-alive 数据更新的问题
2018/09/21 Javascript
webpack4+express+mongodb+vue实现增删改查的示例
2018/11/08 Javascript
JQuery animate动画应用示例
2019/05/14 jQuery
对layui中的onevent 和event的使用详解
2019/09/06 Javascript
解决layui数据表格排序图标被超出的表头挤出去的问题
2019/09/19 Javascript
[51:39]DOTA2-DPC中国联赛 正赛 Magma vs LBZS BO3 第二场 2月7日
2021/03/11 DOTA
Python3搜索及替换文件中文本的方法
2015/05/22 Python
Python的numpy库中将矩阵转换为列表等函数的方法
2018/04/04 Python
解决python读取几千万行的大表内存问题
2018/06/26 Python
详解python读取和输出到txt
2019/03/29 Python
使用Python计算玩彩票赢钱概率
2019/06/26 Python
如何在VSCode上轻松舒适的配置Python的方法步骤
2019/10/28 Python
python字符串,元组,列表,字典互转代码实例详解
2020/02/14 Python
CSS3 实现雷达扫描图的示例代码
2020/09/21 HTML / CSS
如何让pre和textarea等HTML元素去掉滚动条自动换行自适应文本内容高度
2019/08/01 HTML / CSS
华润集团网上药店:健一网
2016/09/19 全球购物
专注澳大利亚特产和新西兰特产的澳洲中文网:0061澳洲制造
2019/03/24 全球购物
澳大利亚第一旅行车和房车配件店:Caravan RV Camping
2020/12/26 全球购物
社区活动邀请函范文
2014/01/29 职场文书
节水倡议书范文
2014/04/15 职场文书
师范类求职信
2014/06/21 职场文书
欢度春节标语
2014/07/01 职场文书