在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解决鸡兔同笼问题的方法
Dec 20 Python
让Python代码更快运行的5种方法
Jun 21 Python
Python的Django框架中模板碎片缓存简介
Jul 24 Python
用python找出那些被“标记”的照片
Apr 20 Python
神经网络相关之基础概念的讲解
Dec 29 Python
Python3实现的判断环形链表算法示例
Mar 07 Python
解决pycharm启动后总是不停的updating indices...indexing的问题
Nov 27 Python
什么是Python变量作用域
Jun 03 Python
Python 实现简单的客户端认证
Jul 29 Python
Python爬虫之Selenium中frame/iframe表单嵌套页面
Dec 04 Python
Python调用SMTP服务自动发送Email的实现步骤
Feb 07 Python
Python中对象的比较操作==和is区别详析
Feb 12 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
使用sockets:从新闻组中获取文章(二)
2006/10/09 PHP
用php实现的获取网页中的图片并保存到本地的代码
2010/01/05 PHP
php设计模式 Command(命令模式)
2011/06/26 PHP
twig模板常用语句实例小结
2016/02/04 PHP
PHP面向对象程序设计类的定义与用法简单示例
2016/12/27 PHP
php实现的中文分词类完整实例
2017/02/06 PHP
如何确保JavaScript的执行顺序 之jQuery.html深度分析
2011/03/03 Javascript
jquery获得下拉框值的代码
2011/08/13 Javascript
JS实现悬浮移动窗口(悬浮广告)的特效
2013/03/12 Javascript
jquery表格内容筛选实现思路及代码
2013/04/16 Javascript
javascript中的变量作用域以及变量提升详细介绍
2013/10/24 Javascript
Backbone.js的一些使用技巧
2015/07/01 Javascript
jQuery webuploader分片上传大文件
2016/11/07 Javascript
浅析JavaScript中作用域和作用域链
2016/12/06 Javascript
利用JS实现页面删除并重新排序功能
2016/12/09 Javascript
jQuery插件FusionCharts绘制2D环饼图效果示例【附demo源码】
2017/04/10 jQuery
js学习总结之DOM2兼容处理重复问题的解决方法
2017/07/27 Javascript
JS实现给数组对象排序的方法分析
2019/06/24 Javascript
layui按条件隐藏表格列的实例
2019/09/19 Javascript
[02:40]DOTA2英雄基础教程 先知
2013/11/29 DOTA
python实现将pvr格式转换成pvr.ccz的方法
2015/04/28 Python
Python for Informatics 第11章之正则表达式(四)
2016/04/21 Python
python如何查看微信消息撤回
2018/11/27 Python
pymongo中group by的操作方法教程
2019/03/22 Python
Django+boostrap 美化admin后台的操作
2020/03/11 Python
Python实现AI换脸功能
2020/04/10 Python
Django 解决新建表删除后无法重新创建等问题
2020/05/21 Python
python接口自动化之ConfigParser配置文件的使用详解
2020/08/03 Python
python绘图模块之利用turtle画图
2021/02/12 Python
html5将图片转换成base64的实例代码
2016/09/21 HTML / CSS
美国女士时尚珠宝及配饰购物网站:Icing
2018/07/02 全球购物
室内设计专业个人的自我评价
2013/10/19 职场文书
十八届三中全会个人学习材料
2014/02/13 职场文书
2014年个人债务授权委托书范本
2014/09/22 职场文书
JavaScript 定时器详情
2021/11/11 Javascript
Win11 Beta 预览版 22621.575 和 22622.575更新补丁KB5016694发布(附更新内容大全)
2022/08/14 数码科技