在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处理python编码问题
Mar 13 Python
python网络编程之文件下载实例分析
May 20 Python
python统计cpu利用率的方法
Jun 02 Python
使用httplib模块来制作Python下HTTP客户端的方法
Jun 19 Python
python 实现自动远程登陆scp文件实例代码
Mar 13 Python
python、java等哪一门编程语言适合人工智能?
Nov 13 Python
Django中如何使用sass的方法步骤
Jul 09 Python
Python拆分大型CSV文件代码实例
Oct 07 Python
如何在python中实现随机选择
Nov 02 Python
Keras实现将两个模型连接到一起
May 23 Python
使用AJAX和Django获取数据的方法实例
Oct 25 Python
python批量提取图片信息并保存的实现
Feb 05 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
解决控件遮挡问题:关于有窗口元素和无窗口元素
2007/01/28 PHP
Yii的CDbCriteria查询条件用法实例
2014/12/04 PHP
开启PHP Static 关键字之旅模式
2015/11/13 PHP
php实现三级级联下拉框
2016/04/17 PHP
PHP实现的多文件上传类及用法示例
2016/05/06 PHP
laravel使用数据库测试注意事项
2020/04/10 PHP
原生js实现给指定元素的后面追加内容
2013/04/10 Javascript
jquery简单实现滚动条下拉DIV固定在头部不动
2013/11/25 Javascript
js调用浏览器打印模块实现点击按钮触发自定义函数
2014/03/21 Javascript
sails框架的学习指南
2014/12/22 Javascript
Javascript中For In语句用法实例
2015/05/14 Javascript
浅谈JavaScript字符串拼接
2015/06/25 Javascript
JS+CSS实现仿msn风格选项卡效果代码
2015/10/22 Javascript
JavaScript中return用法示例
2016/11/29 Javascript
nodejs的压缩文件模块archiver用法示例
2017/01/18 NodeJs
原生JS京东轮播图代码
2017/03/22 Javascript
利用pm2部署多个node.js项目的配置教程
2017/10/22 Javascript
Vue+Django项目部署详解
2019/05/30 Javascript
jQuery实现简单评论功能
2020/08/19 jQuery
解决vue-router 嵌套路由没反应的问题
2020/09/22 Javascript
小程序实现上下切换位置
2020/11/16 Javascript
[06:30]DOTA2英雄梦之声_第15期_死亡先知
2014/06/21 DOTA
python 写的一个爬虫程序源码
2016/02/28 Python
Python模块、包(Package)概念与用法分析
2019/05/31 Python
Python 爬虫实现增加播客访问量的方法实现
2019/10/31 Python
Ubuntu中配置TensorFlow使用环境的方法
2020/04/21 Python
一款纯css3实现的tab选项卡的实列教程
2014/12/11 HTML / CSS
日本最大的药妆连锁店:Matsukiyo松本清药妆店
2017/11/23 全球购物
主要的Ajax框架都有什么
2013/11/14 面试题
医学专业毕业生个人的求职信
2013/12/04 职场文书
学生安全承诺书
2014/05/22 职场文书
中学生旷课检讨书2篇
2014/10/09 职场文书
2019年“我为祖国点赞”演讲稿(3篇)
2019/09/26 职场文书
聊聊JS ES6中的解构
2021/04/29 Javascript
springboot 自定义配置 解决Boolean属性不生效
2022/03/18 Java/Android
Android自定义双向滑动控件
2022/04/19 Java/Android