1. 程式人生 > >Python3 csv 檔案通過pandas寫入資料庫

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)
[email protected]
%(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(如果表存在,把資料插入,如果表不存在建立一個表) #第四個引數是否需要配置索引

這裡寫圖片描述
這裡,讀取出來的資料型別是text,double,bigint型別,沒有索引,雖然儲存方便,但是不適合資料庫管理,比較適合資料圖形化操作,請根據需要來選擇,否則大坑小坑不斷,後患無窮呢!

#呼叫函式
readFile()