python读取数据库


一、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()

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM