前言
今天想要用Python訪問Access數(shù)據(jù)庫(kù)蚊逢,折騰了半天涨醋,特記錄一下
背景
最近想將一些文件記錄下來友题,存入數(shù)據(jù)庫(kù)功蜓,為此拿LabVIEW寫了一個(gè)版本园爷,記錄環(huán)境配置為:
LabVIWE:2015
Access:2016
驅(qū)動(dòng)連接字符串:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;Jet OLEDB:Database Password=;Persist Security Info=False
雖然用LabVIEW已經(jīng)實(shí)現(xiàn)功能,但覺得還是太笨重了式撼,所以打算用Python再實(shí)現(xiàn)一遍童社。
數(shù)據(jù)庫(kù)連接
數(shù)據(jù)庫(kù)連接網(wǎng)上大致有兩種方法,一種是使用pyodbc
,另一種是使用win32com.client
,測(cè)試了很多遍著隆,最終只有pyodbc成功扰楼,而且比較好用,所以這里只介紹這種方法
環(huán)境安裝
由于LabVIEW已經(jīng)完成實(shí)現(xiàn),所以環(huán)境主要是Python 2.7 和 Access 2016
為了加載需要的庫(kù)答憔,python 2.7 安裝了Pip工具
工具庫(kù)安裝
在此基礎(chǔ)上安裝pyodbc工具庫(kù)裸诽,在cmd窗口執(zhí)行如下語句安裝
pip install pyodbc
程序?qū)崿F(xiàn)
import pyodbc
DBfile = r"test.mdb" # 數(shù)據(jù)庫(kù)文件
conn = pyodbc.connect(r"Driver={Driver do Microsoft Access (*.mdb)};DBQ=" + DBfile + ";Uid=;Pwd=;")
cursor = conn.cursor()
SQL = "SELECT * from MFRProcess;"
for row in cursor.execute(SQL):
print row
cursor.close()
conn.close()
需要注意的是,Driver的內(nèi)容需要根據(jù)自己的環(huán)境驅(qū)動(dòng)變化蹬竖,一開始我認(rèn)為和LabVIEW一致沼沈,后來發(fā)現(xiàn)需要根據(jù)自己的驅(qū)動(dòng)環(huán)境來設(shè)置。