在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 相关文章推荐
pycharm 使用心得(五)断点调试
Jun 06 Python
Django发送html邮件的方法
May 26 Python
解密Python中的描述符(descriptor)
Jun 03 Python
python通过cookie模拟已登录状态的初步研究
Nov 09 Python
tensorflow获取变量维度信息
Mar 10 Python
Django 根据数据模型models创建数据表的实例
May 27 Python
ubuntu17.4下为python和python3装上pip的方法
Jun 12 Python
利用python循环创建多个文件的方法
Oct 25 Python
pytorch 实现删除tensor中的指定行列
Jan 13 Python
Python常用库大全及简要说明
Jan 17 Python
python 解决tqdm模块不能单行显示的问题
Feb 19 Python
详解Java中一维、二维数组在内存中的结构
Feb 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
跨浏览器PHP下载文件名中的中文乱码问题解决方法
2015/03/05 PHP
PHP基于MySQLI函数封装的数据库连接工具类【定义与用法】
2017/08/11 PHP
php微信开发之音乐回复功能
2018/06/14 PHP
JavaScript函数、方法、对象代码
2008/10/29 Javascript
JS实现self的resend
2010/07/22 Javascript
javascript设计模式 封装和信息隐藏(上)
2012/07/24 Javascript
js 日期比较相关天数代码
2014/04/02 Javascript
JavaScript字符串对象charAt方法入门实例(用于取得指定位置的字符)
2014/10/17 Javascript
jQuery实现ichat在线客服插件
2014/12/29 Javascript
jQuery多个input求和的实现方法
2015/02/12 Javascript
比较常见的javascript中定义函数的区别
2015/11/09 Javascript
js 判断一组日期是否是连续的简单实例
2016/07/11 Javascript
request请求获取参数的实现方法(post和get两种方式)
2016/09/27 Javascript
详解nodejs爬虫程序解决gbk等中文编码问题
2017/04/06 NodeJs
简单实现js放大镜效果
2017/07/24 Javascript
Nodejs连接mysql并实现增、删、改、查操作的方法详解
2018/01/04 NodeJs
详解vue中移动端自适应方案
2019/05/05 Javascript
微信小程序实现授权登录
2019/05/15 Javascript
wxpython 学习笔记 第一天
2009/03/16 Python
python将html转成PDF的实现代码(包含中文)
2013/03/04 Python
Python将多个excel表格合并为一个表格
2021/02/22 Python
Python入门之后再看点什么好?
2018/03/05 Python
Python对象中__del__方法起作用的条件详解
2018/11/01 Python
python 获取微信好友列表的方法(微信web)
2019/02/21 Python
Python实现数据结构线性链表(单链表)算法示例
2019/05/04 Python
Python QTimer实现多线程及QSS应用过程解析
2020/07/11 Python
古驰英国官网:GUCCI英国
2020/03/07 全球购物
委托与事件是什么关系?为什么要使用委托
2014/04/18 面试题
linux面试题参考答案(1)
2016/01/22 面试题
python re模块和正则表达式
2021/03/24 Python
护士自我鉴定
2013/10/23 职场文书
教学实习自我评价
2014/01/28 职场文书
政工例会汇报材料
2014/08/26 职场文书
教师群众路线心得体会
2014/11/04 职场文书
企业法律事务工作总结
2015/08/11 职场文书
《女娲补天》教学反思
2016/02/20 职场文书