日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python csv文件创建时间_记录 python 根据csv文件自动创建表插入数据

發布時間:2025/4/5 python 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python csv文件创建时间_记录 python 根据csv文件自动创建表插入数据 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

# -*- coding: utf-8 -*-

importos

importpymysql

importpandas aspd

# 1.連接 Mysql 數據庫

try:

conn = pymysql.connect(host='localhost', user='root', password='sq8813', db='db_test', charset='utf8')

cur = conn.cursor()

print('數據庫連接成功!')

print(' ')

except:

print('數據庫連接失敗!')

# 2.讀取任意文件夾下的csv文件

#獲取程序所在路徑及該路徑下所有文件名稱

path = os.getcwd()

files = os.listdir(path)

#遍歷所有文件

i = 0

forfile infiles:

#判斷文件是不是csv文件

iffile.split('.')[-1] in['csv']:

i += 1

#構建一個表名稱,供后期SQL語句調用

filename = file.split('.')[0]

filename = 'tab_'+ filename

#使用pandas庫讀取csv文件的所有內容,結果f是一個數據框,保留了表格的數據存儲方式,是pandas的數據存儲結構。

f = pd.read_csv(file, encoding='gbk') # 注意:如果報錯就改成 encoding='utf-8' 試試

#print(f)

# 3.計算創建字段名稱和字段類型的 SQL語句片段

# 3.1 獲取數據框的標題行(即字段名稱),將來作為sql語句中的字段名稱。

columns = f.columns.tolist()

print(columns)

# 3.2 將csv文件中的字段類型轉換成mysql中的字段類型

types = f.ftypes

field = [] #用來接收字段名稱的列表

table = [] #用來接收字段名稱和字段類型的列表

foritem incolumns:

if 'int' intypes[item]:

char = item + ' INT'

elif 'float' intypes[item]:

char = item +' FLOAT'

elif 'object' intypes[item]:

char = item +' VARCHAR(255)'

elif 'datetime' intypes[item]:

char = item + ' DATETIME'

else:

char = item + ' VARCHAR(255)'

table.append(char)

field.append(item)

# 3.3 構建SQL語句片段

# 3.3.1 將table列表中的元素用逗號連接起來,組成table_sql語句中的字段名稱和字段類型片段,用來創建表。

tables = ','.join(table)

print(tables)

#3.3.2 將field列表中的元素用逗號連接起來,組成insert_sql語句中的字段名稱片段,用來插入數據。

fields = ','.join(field) #字段名

print(fields)

# 4. 創建數據庫表

# 4.1 #如果數據庫表已經存在,首先刪除它

cur.execute('drop table if exists {};'.format(filename))

conn.commit()

# 4.2 構建創建表的SQL語句

table_sql = 'CREATE TABLE IF NOT EXISTS '+ filename + '('+ 'id0 int PRIMARY KEY NOT NULL auto_increment,'+ tables + ');'

print('table_sql is: '+ table_sql)

# 4.3 開始創建數據庫表

print('表:'+ filename + ',開始創建…………')

cur.execute(table_sql)

conn.commit()

print('表:'+ filename + ',創建成功!')

# 5.向數據庫表中插入數據

print('表:'+ filename + ',開始插入數據…………')

# 5.1 將數據框的數據讀入列表。每行數據是一個列表,所有數據組成一個大列表。也就是列表中的列表,將來可以批量插入數據庫表中。

values = f.values.tolist() #所有的數據

print(values)

# 5.2 計算數據框中總共有多少個字段,每個字段用一個 %s 替代。

s = ','.join(['%s' for_ inrange(len(f.columns))])

print("s is ",s)

# 5.3 構建插入數據的SQL語句

insert_sql = 'insert into {}({}) values({})'.format(filename,fields,s)

print('insert_sql is:'+ insert_sql)

# 5.4 開始插入數據

cur.executemany(insert_sql, values) #使用 executemany批量插入數據

conn.commit()

print('表:'+ filename + ',數據插入完成!')

print(' ')

print('任務完成!共導入 {} 個CSV文件。'.format(i))

總結

以上是生活随笔為你收集整理的python csv文件创建时间_记录 python 根据csv文件自动创建表插入数据的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。