在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中http请求方法库汇总
Jan 06 Python
实例解析Python中的__new__特殊方法
Jun 02 Python
python 链接和操作 memcache方法
Mar 04 Python
python如何修改装饰器中参数
Mar 20 Python
PyQt5实现下载进度条效果
Apr 19 Python
详解python数据结构和算法
Apr 18 Python
pandas dataframe的合并实现(append, merge, concat)
Jun 24 Python
python 队列基本定义与使用方法【初始化、赋值、判断等】
Oct 24 Python
在主流系统之上安装Pygame的方法
May 20 Python
python 使用建议与技巧分享(四)
Aug 18 Python
Python word文本自动化操作实现方法解析
Nov 05 Python
django学习之ajax post传参的2种格式实例
May 14 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的控制语句
2006/10/09 PHP
php下关于中英数字混排的字符串分割问题
2010/04/06 PHP
php empty函数判断mysql表单是否为空
2010/04/12 PHP
php修改上传图片尺寸的方法
2015/04/14 PHP
php获取文件后缀的9种方法
2016/03/22 PHP
php+ajax实现异步上传文件或图片功能
2017/07/18 PHP
PHP实现mysqli批量执行多条语句的方法示例
2017/07/22 PHP
laravel实现上传图片的两种方式小结
2019/10/12 PHP
刷新时清空文本框内容的js代码
2007/04/23 Javascript
js控制CSS样式属性语法对照表
2012/12/11 Javascript
Jquery绑定事件(bind和live的区别介绍)
2013/08/23 Javascript
js中document.write的那点事
2014/12/12 Javascript
AJAX和jQuery动态加载数据的实现方法
2016/12/05 Javascript
jQuery插件Echarts实现的双轴图效果示例【附demo源码下载】
2017/03/04 Javascript
Node.js通过身份证号验证年龄、出生日期与性别方法示例
2017/03/09 Javascript
jQuery插件HighCharts实现气泡图效果示例【附demo源码】
2017/03/13 Javascript
js实现移动端编辑添加地址【模仿京东】
2017/04/28 Javascript
vue watch深度监听对象实现数据联动效果
2018/08/16 Javascript
详解微信小程序中组件通讯
2018/10/30 Javascript
微信小程序实现带放大效果的轮播图
2020/05/26 Javascript
vue 判断页面是首次进入还是再次刷新的实例
2020/11/05 Javascript
Vue+Element-U实现分页显示效果
2020/11/15 Javascript
在Linux系统上通过uWSGI配置Nginx+Python环境的教程
2015/12/25 Python
Python中操作mysql的pymysql模块详解
2016/09/13 Python
Python将DataFrame的某一列作为index的方法
2018/04/08 Python
python mysql 字段与关键字冲突的解决方式
2020/03/02 Python
Python脚本破解压缩文件口令实例教程(zipfile)
2020/06/14 Python
Python grequests模块使用场景及代码实例
2020/08/10 Python
全网最全python库selenium自动化使用详细教程
2021/01/12 Python
快速实现一个简单的canvas迷宫游戏的示例
2018/07/04 HTML / CSS
美国知名的时尚购物网站:Anthropologie
2016/12/22 全球购物
如何高效率的查找一个月以内的数据
2012/04/15 面试题
高中生个性发展自我评价
2015/03/09 职场文书
《最后一头战象》读后感:动物也有感情
2020/01/02 职场文书
Pytest allure 命令行参数的使用
2021/04/18 Python
nginx容器方式反向代理实战
2022/04/18 Servers