有一大堆access数据库文件(后缀名.mdb):

每个文件中有两个表:

结构相同,内容不同,为了查看对比方便,想要把数据库中的数据提取出来,放到一个excel文件中。
使用python实现。代码如下:
import win32com.client
def getrsdata(conn,tablename):
print('table:',tablename)
rs = win32com.client.Dispatch(r'ADODB.Recordset')
rs.Open('[' + tablename + ']', conn, 1, 3)
rs.MoveFirst()
count = 0
s=''
while 1:
if rs.EOF:
break
else:
count = count + 1
if count==1:
for x in range(rs.Fields.Count):
s+=str(rs.Fields.Item(x).Name)+'\t'
s+='\n'
for x in range(rs.Fields.Count):
s+=str(rs.Fields.Item(x).Value)+'\t'
rs.MoveNext()
s+='\n'
rs.Close()
print(tablename,count)
return s
def getmdbdata(mdbname):
print('mdb:',mdbname)
conn = win32com.client.Dispatch(r'ADODB.Connection')
DSN = 'PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE='+mdbname+';'
conn.Open(DSN)
s=''
s+=mdbname+'\n'
s+='Res'+'\n'
s+=getrsdata(conn,'Res')
s+='\n'
s+='Rule'+'\n'
s+=getrsdata(conn,'Rule')
s+='\n'
conn.Close()
return s
s=''
for i in range(25):
print('i:',i)
s+=getmdbdata('Case'+str(i)+'.mdb')
s+='\n\n'
#save
f = open("out.txt",'w')
f.write(s)
f.close()
print('complete')
input()参考:http://www.xuyukun.com/python-use-access%E6%95%B0%E6%8D%AE%E5%BA%93/
http://www.zeuux.com/group/python/bbs/content/40733/
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。