在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实现搜索本地文件信息写入文件的方法
Feb 22 Python
Python面向对象编程基础解析(二)
Oct 26 Python
pycharm设置注释颜色的方法
May 23 Python
Python动态导入模块的方法实例分析
Jun 28 Python
在python image 中安装中文字体的实现方法
Aug 22 Python
python 根据网易云歌曲的ID 直接下载歌曲的实例
Aug 24 Python
关于TensorFlow新旧版本函数接口变化详解
Feb 10 Python
Python CSS选择器爬取京东网商品信息过程解析
Jun 01 Python
基于python实现音乐播放器代码实例
Jul 01 Python
Python 列表反转显示的四种方法
Nov 16 Python
matplotlib之pyplot模块实现添加子图subplot的使用
Apr 25 Python
Python基础之教你怎么在M1系统上使用pandas
May 08 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/11/25 PHP
PHP完整的日历类(CLASS)
2006/11/27 PHP
PHP实现的oracle分页函数实例
2016/01/25 PHP
ThinkPHP5.0框架结合Swoole开发实现WebSocket在线聊天案例详解
2019/04/02 PHP
Jquery如何实现点击时高亮显示代码
2014/01/22 Javascript
Jquery Ajax方法传值到action的方法
2014/05/11 Javascript
超详细的javascript数组方法汇总
2015/11/21 Javascript
详解javascript高级定时器
2015/12/31 Javascript
jQuery实现checkbox列表的全选、反选功能
2016/11/24 Javascript
使用angular帮你实现拖拽的示例
2017/07/05 Javascript
Vue数组更新及过滤排序功能
2017/08/10 Javascript
NW.js 简介与使用方法
2018/02/01 Javascript
详解Vue中watch的详细用法
2018/11/28 Javascript
jQuery实现点击旋转,再点击恢复初始状态动画效果示例
2018/12/11 jQuery
ES6使用新特性Proxy实现的数据绑定功能实例
2020/05/11 Javascript
vue中实现点击变成全屏的多种方法
2020/09/27 Javascript
Python数据可视化正态分布简单分析及实现代码
2017/12/04 Python
django2 快速安装指南分享
2018/01/05 Python
解决python3捕获cx_oracle抛出的异常错误问题
2018/10/18 Python
python科学计算之numpy——ufunc函数用法
2019/11/25 Python
python为Django项目上的每个应用程序创建不同的自定义404页面(最佳答案)
2020/03/09 Python
python 在sql语句中使用%s,%d,%f说明
2020/06/06 Python
matplotlib基础绘图命令之bar的使用方法
2020/08/13 Python
Python Opencv图像处理基本操作代码详解
2020/08/31 Python
巴西女装购物网站:Eclectic
2018/04/24 全球购物
大学生专科毕业生自我评价
2013/11/17 职场文书
室内设计专业毕业生求职信
2014/05/02 职场文书
五一劳动节演讲稿
2014/09/12 职场文书
端午节寄语2015
2015/03/23 职场文书
银行稽核岗位职责
2015/04/13 职场文书
抢劫罪辩护词
2015/05/21 职场文书
2016应届毕业生自荐信范文
2016/01/28 职场文书
小学生作文之《压岁钱的烦恼》
2019/09/27 职场文书
Python中seaborn库之countplot的数据可视化使用
2021/06/11 Python
python入门学习关于for else的特殊特性讲解
2021/11/20 Python
Pytorch中使用ImageFolder读取数据集时忽略特定文件
2022/03/23 Python