在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转换摩斯密码示例
Feb 16 Python
Python去掉字符串中空格的方法
Mar 11 Python
Python实现的简单发送邮件脚本分享
Nov 07 Python
Python中实现三目运算的方法
Jun 21 Python
Python实现列表转换成字典数据结构的方法
Mar 11 Python
Python异常的检测和处理方法
Oct 26 Python
pyqt5实现俄罗斯方块游戏
Jan 11 Python
pandas和spark dataframe互相转换实例详解
Feb 18 Python
浅谈keras中Dropout在预测过程中是否仍要起作用
Jul 09 Python
Pycharm中使用git进行合作开发的教程详解
Nov 17 Python
教你利用python实现企业微信发送消息
May 23 Python
什么是Python装饰器?如何定义和使用?
Apr 11 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
discuz程序的PHP加密函数原理分析
2011/08/05 PHP
ThinkPHP2.0读取MSSQL提示Incorrect syntax near the keyword 'AS'的解决方法
2014/06/25 PHP
PHP遍历数组的三种方法及效率对比分析
2015/02/12 PHP
php实现将任意进制数转换成10进制的方法
2015/04/17 PHP
php编程实现简单的网页版计算器功能示例
2017/04/26 PHP
jquery实现很酷的网页顶部图标下拉菜单效果
2015/08/22 Javascript
Javascript实现代码折叠功能
2016/08/25 Javascript
Vue.js第三天学习笔记(计算属性computed)
2016/12/01 Javascript
jQuery中animate的几种用法与注意事项
2016/12/12 Javascript
谈谈第三方App接入微信登录 解读
2016/12/27 Javascript
原生node.js案例--前后台交互
2017/02/20 Javascript
随机生成10个不重复的0-100的数字(实例讲解)
2017/08/16 Javascript
echarts同一页面中四个图表切换的js数据交互方法示例
2018/07/03 Javascript
JS实现网站吸顶条
2020/01/08 Javascript
JavaScript十大取整方法实例教程
2020/12/03 Javascript
Swift中的协议(protocol)学习教程
2016/07/08 Python
详谈Python高阶函数与函数装饰器(推荐)
2017/09/30 Python
Python数据结构与算法之完全树与最小堆实例
2017/12/13 Python
python3+PyQt5使用数据库窗口视图
2018/04/24 Python
从DataFrame中提取出Series或DataFrame对象的方法
2018/11/10 Python
Python OpenCV调用摄像头检测人脸并截图
2020/08/20 Python
python 按钮点击关闭窗口的实现
2020/03/04 Python
pyspark 随机森林的实现
2020/04/24 Python
什么是python的列表推导式
2020/05/26 Python
Python获取android设备cpu和内存占用情况
2020/11/15 Python
HTML5在canvas中绘制复杂形状附效果截图
2014/06/23 HTML / CSS
韩国休闲女装品牌网站:ANAIS
2016/08/24 全球购物
加拿大品牌鞋包连锁店:Little Burgundy
2021/02/28 全球购物
面包店的创业计划书范文
2014/01/16 职场文书
优秀教师事迹简介
2014/02/02 职场文书
青年志愿者活动总结
2014/04/26 职场文书
党员对照检查材料思想汇报(党的群众路线)
2014/09/24 职场文书
一般纳税人申请报告
2015/05/18 职场文书
家庭聚会祝酒词
2015/08/11 职场文书
python利用while求100内的整数和方式
2021/11/07 Python
HTML 里 img 元素的 src 和 srcset 属性的区别详解
2023/05/21 HTML / CSS