一、access
1、獲取表
http://blog.sina.com.cn/s/blog_92ab5a530102wjxe.html
參考這個鏈接。我把操作錄制下來如下所示
import pypyodbc import time filepath = r'C:\Users\zzc\Desktop\ScreenToGif\Asset.mdb' # 連接mdb文件 connStr = (r'Driver={Microsoft Access Driver (*.mdb)};DBQ='+filepath+';' ) conn = pypyodbc.win_connect_mdb(connStr) # connStr = ( # r'Driver={SQL Sever};' # r'Server=sqlserver;' # r'Database=bill;' # r'UID=sa;' # r'PWD=passwd' # ) # # conn = pypyodbc.connect(connStr) # 創建游標 cur = conn.cursor() cur.execute('SELECT * FROM MSysObjects WHERE Flags=0 AND Type=1') #獲得第一個表的表名,為何是-6通過輸出查看的 table_name = cur.fetchall()[0][-6] print(table_name) if conn: #無論如何,連接記得關閉 conn.close()
2、獲取指定表的內容
這里的表名要根據上一節程序獲得,然后代入。同時用pandas存儲數據並保存到csv文件中去。
import pypyodbc import time import pandas as pd import numpy as np filepath = r'C:\Users\zzc\Desktop\ScreenToGif\Asset.mdb' to_filepath = r'C:\Users\zzc\Desktop\ScreenToGif\a.csv' # 連接mdb文件 connStr = (r'Driver={Microsoft Access Driver (*.mdb)};DBQ='+filepath+';' r'Database=Asset2' ) conn = pypyodbc.win_connect_mdb(connStr) # connStr = ( # r'Driver={SQL Sever};' # r'Server=sqlserver;' # r'Database=bill;' # r'UID=sa;' # r'PWD=passwd' # ) # # conn = pypyodbc.connect(connStr) # 創建游標 cur = conn.cursor() cur.execute('SELECT * FROM Asset2') #獲取第一條數據,返回他的長度,也就是字段長度了 columns_len = len(cur.fetchone()) #建立pandas,列數量就是上面字段數量 df = pd.DataFrame(columns=range(columns_len)) index = 0 for row in cur.fetchall(): # temp用來保存每一行的數據 temp = [] for columns in range(columns_len): temp.append(row[columns]) df.loc[index] = temp index+=1 #print(df) df.to_csv(to_filepath) if conn: #無論如何,連接記得關閉 conn.close()