Python3 csv 文件通过pandas写入数据库

import pandas as pd
import os
from sqlalchemy import create_engine

导入sqlalchemy

#配置数据库
db_info = {'user': 'root',
            'password': 'xxx',
           'host': 'localhost',
            'port': 3306,
            'database': 'ip'
            }
#配置数据库引擎
engine = create_engine('mysql+pymysql://%(user)s:%(password)s@%(host)s:%(port)d/%(database)s?charset=utf8' % db_info, encoding='utf-8')
def readFile():
    try:
        #获取当前路径
        cwd = os.getcwd()
        #遍历当前路径,路径,文件全部爬去出来
        for dirpaths, dirnaames,filenames in os.walk(cwd):
            #判断csv文件是否存在
            for filename in filenames:
                if filename.endswith(".csv"):
                    #读取文件
                    df = pd.read_csv(filename,encoding="utf8",sep=',',dtype={'code':str})
                    print(df)
                #直接写入数据库,'t_pandasRead'为表名,会自动创建一个表,不需要自己动手创建
                #to_sql函数支持两类mysql引擎一个是sqlalchemy,另一个是sqlliet3,在写入库的时候,pymysql(python3),mysqldb(python2)是不能用的,只能使用sqlalchemy或者sqlliet3.
                   df.to_sql('t_pandasRead',con=engine,if_exists='append',index=False)
#第一个参数't_pandasRead'是需要导入的表名
#第二个参数数据库引擎
#第三个参数if_exists="",引号里面可以跟三个参数,fail(如果表存在,啥也不做),replace(如果表存在,删了表,再建立一个新表,把数据插入),append(如果表存在,把数据插入,如果表不存在创建一个表)
#第四个参数是否需要配置索引

Python3 csv 文件通过pandas写入数据库_第1张图片
这里,读取出来的数据类型是text,double,bigint类型,没有索引,虽然存储方便,但是不适合数据库管理,比较适合数据图形化操作,请根据需要来选择,否则大坑小坑不断,后患无穷呢!

#调用函数
readFile()

你可能感兴趣的:(数据库,Python基础)