在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实现设置windows桌面壁纸代码分享
Mar 28 Python
Python的消息队列包SnakeMQ使用初探
Jun 29 Python
django 开发忘记密码通过邮箱找回功能示例
Apr 17 Python
详解用TensorFlow实现逻辑回归算法
May 02 Python
使用python对文件中的单词进行提取的方法示例
Dec 21 Python
对python多线程SSH登录并发脚本详解
Feb 14 Python
详解Ubuntu16.04安装Python3.7及其pip3并切换为默认版本
Feb 25 Python
Python根据当前日期取去年同星期日期
Apr 14 Python
django框架forms组件用法实例详解
Dec 10 Python
python字符串,元组,列表,字典互转代码实例详解
Feb 14 Python
Django搭建项目实战与避坑细节详解
Dec 06 Python
用python-webdriver实现自动填表的示例代码
Jan 13 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中与数组相关的函数
2007/03/22 PHP
解决php使用异步调用获取数据时出现(错误c00ce56e导致此项操作无法完成)
2013/07/03 PHP
PHP父类调用子类方法的代码例子
2014/04/09 PHP
浅析ThinkPHP的模板输出功能
2014/07/01 PHP
php建立Ftp连接的方法
2015/03/07 PHP
php-redis中的sort排序函数总结
2015/07/08 PHP
php装饰者模式简单应用案例分析
2019/10/23 PHP
js 创建书签小工具之理论
2011/02/25 Javascript
jQuery EasyUI API 中文文档 - ComboGrid 组合表格
2011/10/13 Javascript
js给onclick赋值传参数的两种方法
2013/11/25 Javascript
js 定时器setTimeout无法调用局部变量的解决办法
2013/11/28 Javascript
用javascript关闭本窗口技巧小结
2014/09/05 Javascript
js构造函数、索引数组和属性的实现方式和使用
2014/11/16 Javascript
JavaScript获取Url里的参数
2014/12/18 Javascript
jQuery使用animate创建动画用法实例
2015/08/07 Javascript
AngularJS教程 ng-style 指令简单示例
2016/08/03 Javascript
Centos7 中安装 Node.js v4.4.4
2016/11/03 Javascript
bootstrap 模态框(modal)实现水平垂直居中显示
2017/01/23 Javascript
js a标签点击事件
2017/03/30 Javascript
Vue引用第三方datepicker插件无法监听datepicker输入框的值的解决
2018/01/27 Javascript
利用JS如何获取form表单数据
2019/12/19 Javascript
JavaScript 中判断变量是否为数字的示例代码
2020/10/22 Javascript
numpy.array 操作使用简单总结
2019/11/08 Python
Python通过VGG16模型实现图像风格转换操作详解
2020/01/16 Python
基于Numba提高python运行效率过程解析
2020/03/02 Python
Python通过Tesseract库实现文字识别
2020/03/05 Python
css3 给背景设置渐变色的方法
2019/09/12 HTML / CSS
IRO美国官网:法国服装品牌
2018/03/06 全球购物
银行毕业实习自我鉴定
2013/09/19 职场文书
酒店服务与管理毕业生求职信
2013/11/02 职场文书
领导检查欢迎词
2014/01/14 职场文书
暑期社会实践心得体会
2014/09/02 职场文书
求职信格式范文
2015/03/19 职场文书
在职证明书模板
2015/06/15 职场文书
2015年秋季校长开学典礼致辞
2015/07/29 职场文书
Redis集群节点通信过程/原理流程分析
2022/03/18 Redis