在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挑选文件夹里宽大于300图片的方法
Mar 05 Python
Python实现屏幕截图的代码及函数详解
Oct 01 Python
Python 专题四 文件基础知识
Mar 20 Python
基于Linux系统中python matplotlib画图的中文显示问题的解决方法
Jun 15 Python
利用python在excel中画图的实现方法
Mar 17 Python
python+requests接口压力测试500次,查看响应时间的实例
Apr 30 Python
python实现逢七拍腿小游戏的思路详解
May 26 Python
python virtualenv虚拟环境配置与使用教程详解
Jul 13 Python
使用Selenium实现微博爬虫(预登录、展开全文、翻页)
Apr 13 Python
使用Pytorch训练two-head网络的操作
May 28 Python
如何用python清洗文件中的数据
Jun 18 Python
基于Python实现nc批量转tif格式
Aug 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 全局变量范围分析
2009/08/07 PHP
codeigniter教程之多文件上传使用示例
2014/02/11 PHP
Laravel 4.2 中队列服务(queue)使用感受
2014/10/30 PHP
javascript 多浏览器 事件大全
2010/03/23 Javascript
Jquery选择器中使用变量实现动态选择例子
2014/07/25 Javascript
jQuery制作简单柱状图实例
2015/01/28 Javascript
JavaScript中的toLocaleLowerCase()方法使用详解
2015/06/06 Javascript
JS数组去掉重复数据只保留一条的实现代码
2016/08/11 Javascript
JavaScript中ES6字符串扩展方法
2016/08/26 Javascript
微信开发 JS-SDK 6.0.2 经常遇到问题总结
2016/12/08 Javascript
用vue的双向绑定简单实现一个todo-list的示例代码
2017/08/03 Javascript
webpack+vue中使用别名路径引用静态图片地址
2017/11/20 Javascript
JavaScript实现修改伪类样式
2017/11/27 Javascript
微信小程序仿朋友圈发布动态功能
2018/07/15 Javascript
Nuxt配合Node在实际生产中的应用详解
2018/08/07 Javascript
laydate只显示时分 不显示秒的功能实现方法
2019/09/28 Javascript
Angular+ionic实现折叠展开效果的示例代码
2020/07/29 Javascript
微信小程序自定义胶囊样式
2020/12/27 Javascript
用实例说明python的*args和**kwargs用法
2013/11/01 Python
Python中的列表生成式与生成器学习教程
2016/03/13 Python
解决python 无法加载downsample模型的问题
2018/10/25 Python
Python qqbot 实现qq机器人的示例代码
2019/07/11 Python
Python numpy多维数组实现原理详解
2020/03/10 Python
5行Python代码实现图像分割的步骤详解
2020/05/25 Python
python中元组的用法整理
2020/06/15 Python
加拿大领先的牛仔零售商:Bluenotes
2018/01/22 全球购物
Expedia印度尼西亚站:预订酒店、廉价航班和度假套餐
2018/01/31 全球购物
三陽商会官方网站:Sanyo iStore
2019/05/15 全球购物
数控专业个人求职信范例
2013/11/29 职场文书
会议邀请书范文
2014/02/02 职场文书
运动会开幕式邀请函
2014/02/03 职场文书
高中语文课后反思
2014/04/27 职场文书
住房抵押登记委托书
2014/09/27 职场文书
少先大队干部竞选稿
2015/11/20 职场文书
python自动化之如何利用allure生成测试报告
2021/05/02 Python
mysql函数之截取字符串的实现
2022/08/14 MySQL