在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 cx_Oracle的基础使用方法(连接和增删改查)
Nov 19 Python
pandas中Timestamp类用法详解
Dec 11 Python
对TensorFlow中的variables_to_restore函数详解
Jul 30 Python
Python wxpython模块响应鼠标拖动事件操作示例
Aug 23 Python
python 批量添加的button 使用同一点击事件的方法
Jul 17 Python
Python (Win)readline和tab补全的安装方法
Aug 27 Python
python实现布隆过滤器及原理解析
Dec 08 Python
pytorch实现MNIST手写体识别
Feb 14 Python
python游戏开发的五个案例分享
Mar 09 Python
python开发实例之Python的Twisted框架中Deferred对象的详细用法与实例
Mar 19 Python
Python多线程通信queue队列用法实例分析
Mar 24 Python
python 图像判断,清晰度(明暗),彩色与黑白实例
Jun 04 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
Zend Framework教程之视图组件Zend_View用法详解
2016/03/05 PHP
php框架CI(codeigniter)自动加载与自主创建对象操作实例分析
2020/06/06 PHP
php提高脚本性能的4个技巧
2020/08/18 PHP
jquery tools系列 expose 学习
2009/09/06 Javascript
Extjs学习笔记之五 一个小细节renderTo和applyTo的区别
2010/01/07 Javascript
使用dynatrace-ajax跟踪JavaScript的性能
2010/04/12 Javascript
解决js正则匹配换行问题实现代码
2012/12/10 Javascript
javascript计时器事件使用详解
2014/01/07 Javascript
JS实现的Select三级下拉菜单代码
2015/08/20 Javascript
你不知道的 javascript【推荐】
2017/01/08 Javascript
整理关于Bootstrap模态弹出框的慕课笔记
2017/03/29 Javascript
使用bootstraptable插件实现表格记录的查询、分页、排序操作
2017/08/06 Javascript
动手写一个angular版本的Message组件的方法
2017/12/16 Javascript
javascript中toFixed()四舍五入使用方法详解
2018/09/28 Javascript
Vue对象赋值视图不更新问题及解决方法
2019/06/03 Javascript
element表格翻页第2页从1开始编号(后端从0开始分页)
2019/12/10 Javascript
基于JS实现table导出Excel并保留样式
2020/05/19 Javascript
微信小程序学习总结(二)样式、属性、模板操作分析
2020/06/04 Javascript
超详细小程序定位地图模块全系列开发教学
2020/11/24 Javascript
[01:38]【DOTA2亚洲邀请赛】Sumail——梦开始的地方
2017/03/03 DOTA
[01:25:38]DOTA2-DPC中国联赛 正赛 VG vs LBZS BO3 第一场 1月19日
2021/03/11 DOTA
深入讨论Python函数的参数的默认值所引发的问题的原因
2015/03/30 Python
遗传算法python版
2018/03/19 Python
Java与Python两大幸存者谁更胜一筹呢
2018/04/12 Python
Django Rest framework之权限的实现示例
2018/12/17 Python
Python中BeautifuSoup库的用法使用详解
2019/11/15 Python
python requests模拟登陆github的实现方法
2019/12/26 Python
jupyter notebook实现显示行号
2020/04/13 Python
python 30行代码实现蚂蚁森林自动偷能量
2021/02/08 Python
英国的领先快速时尚零售商:In The Style
2019/03/25 全球购物
晚会邀请函范文
2014/01/24 职场文书
冰淇淋店的创业计划书
2014/02/07 职场文书
六查六看六改心得体会
2014/10/14 职场文书
nginx实现发布静态资源的方法
2021/03/31 Servers
教你用python控制安卓手机
2021/05/13 Python
Oracle 11g数据库使用expdp每周进行数据备份并上传到备份服务器
2022/06/28 Oracle