在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中的测试模块unittest和doctest的使用教程
Apr 14 Python
Python的Django框架中模板碎片缓存简介
Jul 24 Python
pandas.DataFrame.to_json按行转json的方法
Jun 05 Python
75条笑死人的知乎神回复,用60行代码就爬完了
May 06 Python
基于django传递数据到后端的例子
Aug 16 Python
pytorch-神经网络拟合曲线实例
Jan 15 Python
使用Python操作ArangoDB的方法步骤
Feb 02 Python
python+selenium定时爬取丁香园的新型冠状病毒数据并制作出类似的地图(部署到云服务器)
Feb 09 Python
python 数据分析实现长宽格式的转换
May 18 Python
pycharm 添加解释器的方法步骤
Aug 31 Python
python实现学员管理系统(面向对象版)
Jun 05 Python
Python first-order-model实现让照片动起来
Jun 25 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
DOTA2 6.87版本后新眼位详解攻略
2020/04/20 DOTA
我的论坛源代码(三)
2006/10/09 PHP
PHP的面试题集
2006/11/19 PHP
PHP无限分类的类
2007/01/02 PHP
用Php编写注册后Email激活验证的实例代码
2013/03/11 PHP
详解PHP处理密码的几种方式
2016/11/30 PHP
ThinkPHP框架实现的微信支付接口开发完整示例
2019/04/10 PHP
从Ajax到JQuery Ajax学习
2007/02/14 Javascript
ExtJS 2.0实用简明教程 之ExtJS版的Hello
2009/04/29 Javascript
js实现的真正的iframe高度自适应(兼容IE,FF,Opera)
2010/03/07 Javascript
一些常用且实用的原生JavaScript函数
2010/09/08 Javascript
web前端开发也需要日志
2010/12/09 Javascript
JS实现可改变列宽的table实例
2013/07/02 Javascript
详解vue表单验证组件 v-verify-plugin
2017/04/19 Javascript
JavaScript实现图片本地预览功能【不用上传至服务器】
2017/09/20 Javascript
详解angularjs4部署文件过大解决过程
2018/12/05 Javascript
vue生命周期的探索
2019/04/03 Javascript
Vue中图片Src使用变量的方法
2019/10/30 Javascript
jQuery实现颜色打字机的完整代码
2020/03/19 jQuery
python实现手机通讯录搜索功能
2018/02/22 Python
Python中利用xpath解析HTML的方法
2018/05/14 Python
Python实现线性判别分析(LDA)的MATLAB方式
2019/12/09 Python
实现ECharts双Y轴左右刻度线一致的例子
2020/05/16 Python
python 实现PIL模块在图片画线写字
2020/05/16 Python
Python datetime模块使用方法小结
2020/06/18 Python
canvas 下载二维码和图片加水印的方法
2018/03/21 HTML / CSS
罗技英国官方网站:Logitech UK
2020/11/03 全球购物
德国消费电子产品购物网站:Guter Kauf
2020/09/15 全球购物
J2EE中的容器都包括哪些
2013/08/21 面试题
2014年防汛工作总结
2014/12/08 职场文书
幼儿园中班教师个人总结
2015/02/05 职场文书
上帝也疯狂观后感
2015/06/09 职场文书
暑期社会实践新闻稿
2015/07/17 职场文书
同事欢送会致辞
2015/07/31 职场文书
Go语言的协程上下文的几个方法和用法
2022/04/11 Golang
Win10开机修复磁盘错误怎么跳过?Win10关闭开机磁盘检查的方法
2022/09/23 数码科技