import pandas as pd import mysql.connector from mysql.connector import Error import os from datetime import datetime, timedelta # 数据库连接配置 db_config = { 'host': '152.136.166.253', # 修改这里,去掉端口号 'port': 8989, # 单独指定端口号 'database': 'fly_ticket', 'user': 'root', 'password': 'Cauc@2024' } def import_csv_to_db(file_path, cursor): df = pd.read_csv(file_path) for index, row in df.iterrows(): sql = """INSERT INTO flight (f_n, f_s_p, f_a_p, f_s_a, f_a_a, f_s_t, f_a_t, f_Date, f_Delay, f_p, f_food, f_wide, f_depcode, f_dstcode) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s) ON DUPLICATE KEY UPDATE f_s_p = VALUES(f_s_p), f_a_p = VALUES(f_a_p), f_s_a = VALUES(f_s_a), f_a_a = VALUES(f_a_a), f_s_t = VALUES(f_s_t), f_a_t = VALUES(f_a_t), f_Delay = VALUES(f_Delay), f_p = VALUES(f_p), f_food = VALUES(f_food), f_wide = VALUES(f_wide), f_depcode = VALUES(f_depcode), f_dstcode = VALUES(f_dstcode);""" values = ( row['航班号'], row['出发城市'], row['到达城市'], row['出发机场'], row['到达机场'], row['出发时间'], row['到达时间'], row['出发日期'], row['出发延误时间'], row['economy_origin'], row['经济舱餐食信息'], row['经济舱座椅间距'], row['出发机场三字码'], row['到达机场三字码'] ) cursor.execute(sql, values) try: # 连接到数据库 conn = mysql.connector.connect(**db_config) if conn.is_connected(): cursor = conn.cursor() # 设置日期范围 start_date = datetime(2024, 11, 12) end_date = datetime(2024, 11, 20) current_date = start_date while current_date <= end_date: folder_name = current_date.strftime("%Y-%m-%d") folder_path = os.path.join("D:\college\SE2\Ctrip-Crawler-main\Ctrip-Crawler-withComfortInfo", folder_name, "2024-11-12") if os.path.exists(folder_path): for file_name in os.listdir(folder_path): if file_name.endswith('.csv'): file_path = os.path.join(folder_path, file_name) import_csv_to_db(file_path, cursor) print(f"已导入文件: {file_path}") current_date += timedelta(days=1) # 提交更改 conn.commit() print("所有数据成功插入到数据库") except Error as e: print(f"连接数据库时出错: {e}") finally: if 'conn' in locals() and conn.is_connected(): cursor.close() conn.close() print("数据库连接已关闭")