1. 程式人生 > 其它 >CSV 檔案批量匯入 資料庫 Pandas

CSV 檔案批量匯入 資料庫 Pandas

Pandas
import pandas as pd
from sqlalchemy import create_engine
from sqlalchemy.engine import Engine
import traceback
import math

class MSSQL:
	host = "10.251.21.1XXX"
	port = 3306
	dbname = "AnyXXXX"
	user = "root"
	passwd = "AXXXXXX"

def connect_AS_DB():
	try:
		conn = create_engine ('mysql+pymysql://{user}:{password}@{host}:{port}/{dbname}'.format(user=MSSQL.user,
																					password=MSSQL.passwd,
																					host=MSSQL.host,
																					port=int(MSSQL.port),
																					dbname=MSSQL.dbname),echo = False)
		return conn

	except Exception as e:
		print("Connect to MSSQL exception:%s"% traceback.format_exc())
		return None


if __name__ == '__main__':
	#定義每次分割10行
	lines=10 
	try:
		conn =connect_AS_DB()
	except Exception as E:
		print(E)
	
	df= pd.read_csv(r'C:\LocalTemp\Python 拆分大檔案\操作日誌.2022-4-9~2022-4-19.csv',iterator=False, error_bad_lines=True,encoding='utf-8',names=['DateTime', 'UserName', 'Catelog', 'Action', 'IP', 'Unknown','Record', 'Path', 'Client', 'obj_id'] )
	# print(DataInfo_iterator["DateTime"])


	for i in range(0, math.ceil(df.shape[0]/lines)):
		DataInfo = df.iloc[i*lines:(i+1)*lines]
		if conn:
			try:
				print(DataInfo["DateTime"])
				print('*'*50+str(i)+'*'*50)
				# DataInfo.to_sql('ASLog', conn, if_exists="append", index=False)

			except Exception as e:
				print(e)
		else :
			print("connect to sql error")