在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中的算数运算符的用法
May 13 Python
python获取一组数据里最大值max函数用法实例
May 26 Python
21行Python代码实现拼写检查器
Jan 25 Python
深入理解python中函数传递参数是值传递还是引用传递
Nov 07 Python
WIn10+Anaconda环境下安装PyTorch(避坑指南)
Jan 30 Python
利用Python查看微信共同好友功能的实现代码
Apr 24 Python
如何利用Python开发一个简单的猜数字游戏
Sep 22 Python
pytorch 状态字典:state_dict使用详解
Jan 17 Python
python从PDF中提取数据的示例
Oct 30 Python
Python3.8.2安装包及安装教程图文详解(附安装包)
Nov 28 Python
利用python做表格数据处理
Apr 13 Python
使用Python+OpenCV进行卡类型及16位卡号数字的OCR功能
Aug 30 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
屏蔽浏览器缓存另类方法
2006/10/09 PHP
php实现图片添加水印功能
2014/02/13 PHP
5款适合PHP使用的HTML编辑器推荐
2015/07/03 PHP
JavaScript中this关键字使用方法详解
2007/03/08 Javascript
JavaScript 弹出窗体点击按钮返回选择数据的实现
2010/04/01 Javascript
JavaScript EasyPager 分页函数
2011/05/25 Javascript
Nodejs sublime text 3安装与配置
2014/06/19 NodeJs
jQuery实现点击行选中或取消CheckBox的方法
2016/08/01 Javascript
Js动态设置rem来实现移动端字体的自适应代码
2016/10/14 Javascript
Angularjs 实现动态添加控件功能
2017/05/25 Javascript
Vue.js移动端左滑删除组件的实现代码
2017/09/08 Javascript
JavaScript 保护变量不被随意修改的实现代码
2017/09/27 Javascript
对angularJs中controller控制器scope父子集作用域的实例讲解
2018/10/08 Javascript
p5.js实现动态图形临摹
2019/10/23 Javascript
vue动态合并单元格并添加小计合计功能示例
2020/11/26 Vue.js
[01:33]一分钟玩转DOTA2第三弹:DOTA2&DotA快捷操作大对比
2014/06/04 DOTA
[00:59]DOTA2荣耀之路1:Doom is back!weapon X!
2018/05/22 DOTA
Python对两个有序列表进行合并和排序的例子
2014/06/13 Python
Python使用Srapy框架爬虫模拟登陆并抓取知乎内容
2016/07/02 Python
Python遍历目录并批量更换文件名和目录名的方法
2016/09/19 Python
windows下python之mysqldb模块安装方法
2017/09/07 Python
Python实现字符串的逆序 C++字符串逆序算法
2020/05/28 Python
在win10和linux上分别安装Python虚拟环境的方法步骤
2019/05/09 Python
Python中查看变量的类型内存地址所占字节的大小
2019/06/26 Python
python实现连连看辅助之图像识别延伸
2019/07/17 Python
Python3 assert断言实现原理解析
2020/03/02 Python
Pycharm在指定目录下生成文件和删除文件的实现
2020/12/28 Python
英国泰坦旅游网站:全球陪同游览,邮轮和铁路旅行
2016/11/29 全球购物
FC-Moto丹麦:欧洲最大的摩托车服装和头盔商店之一
2019/08/20 全球购物
JD Sports荷兰:英国领先的运动时尚零售商
2020/03/13 全球购物
上课看小说检讨书
2014/02/22 职场文书
领导班子整改方案
2014/10/25 职场文书
拾金不昧表扬稿大全
2015/05/05 职场文书
同学联谊会邀请函
2019/06/24 职场文书
新西兰:最新留学学习计划书写作指南
2019/07/15 职场文书
教你如何让spark sql写mysql的时候支持update操作
2022/02/15 MySQL