有一大堆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/
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。