在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 参数列表中的self 显式不等于冗余
Dec 01 Python
Python实现文件复制删除
Apr 19 Python
Python执行时间的计算方法小结
Mar 17 Python
python实现守护进程、守护线程、守护非守护并行
May 05 Python
python执行精确的小数计算方法
Jan 21 Python
Python脚本按照当前日期创建多级目录
Mar 01 Python
Django Aggregation聚合使用方法解析
Aug 01 Python
python scrapy爬虫代码及填坑
Aug 12 Python
centos7之Python3.74安装教程
Aug 15 Python
基于Python获取城市近7天天气预报
Nov 26 Python
python 中的命名空间,你真的了解吗?
Aug 19 Python
python实现进度条的多种实现
Apr 29 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 计算代码执行耗时的代码修正网上普遍错误
2011/05/14 PHP
PHP分页类集锦
2014/11/18 PHP
WordPress中is_singular()函数简介
2015/02/05 PHP
php结合md5实现的加密解密方法
2016/01/25 PHP
Zend Framework教程之Application用法实例详解
2016/03/14 PHP
Yii1.1框架实现PHP极光推送消息通知功能
2018/09/06 PHP
ext 同步和异步示例代码
2009/09/18 Javascript
JavaScript 模式之工厂模式(Factory)应用介绍
2012/11/15 Javascript
解析javascript 浏览器关闭事件
2013/07/08 Javascript
使用js写的一个简易的投票
2013/11/27 Javascript
jQuery过滤HTML标签并高亮显示关键字的方法
2015/08/07 Javascript
基于jQuery的AJAX和JSON实现纯html数据模板
2016/08/09 Javascript
javascript深拷贝的原理与实现方法分析
2017/04/10 Javascript
jQuery操作之效果详解
2017/05/19 jQuery
js 两个日期比较相差多少天的实例
2017/10/19 Javascript
vue-lazyload图片延迟加载插件的实例讲解
2018/02/09 Javascript
Node.js EventEmmitter事件监听器用法实例分析
2019/01/07 Javascript
微信小程序中转义字符的处理方法
2019/03/28 Javascript
Net微信网页开发 使用微信JS-SDK获取当前地理位置过程详解
2019/08/26 Javascript
解决基于 keep-alive 的后台多级路由缓存问题
2020/12/23 Javascript
[04:10]2018年度CS GO玩家最喜爱的主播-完美盛典
2018/12/16 DOTA
使用PIL(Python-Imaging)反转图像的颜色方法
2019/01/24 Python
详解python解压压缩包的五种方法
2019/07/05 Python
python求加权平均值的实例(附纯python写法)
2019/08/22 Python
django xadmin action兼容自定义model权限教程
2020/03/30 Python
django项目中使用云片网发送短信验证码的实现
2021/01/19 Python
用CSS3来实现社交分享按钮
2014/11/11 HTML / CSS
JBL澳大利亚官方商店:扬声器、耳机和音响系统
2018/05/24 全球购物
Michael Kors香港官网:美国奢侈品品牌
2019/12/26 全球购物
什么是servlet链?
2014/07/13 面试题
会计专业个人求职信范文
2014/01/08 职场文书
2014年科室工作总结
2014/11/20 职场文书
校车司机安全责任书
2015/05/11 职场文书
2016年小学生教师节广播稿
2015/12/18 职场文书
志愿者工作心得体会
2016/01/15 职场文书
Rust 连接 PostgreSQL 数据库的详细过程
2022/01/22 PostgreSQL