#!/usr/bin/env python3 import sys import os from mysql.connector import MySQLConnection, Error from dbconfig import read_db_config from datetime import datetime import math import shutil def removeDuplicates(lst): return list(set([i for i in lst])) def getDataFromCsvAndInsert(pathFile): try: print(pathFile) folder_name = pathFile.split("/")[-2]#cartella with open(pathFile, 'r') as file: data = file.readlines() data = [row.rstrip() for row in data] if(len(data) > 0 and data is not None): if(folder_name == "ID0247"): unit_name = "ID0247" tool_name = "DT0001" data.pop(0) #rimuove header data.pop(0) data.pop(0) data.pop(0) data = [element for element in data if element != ""] try: db_config = read_db_config() conn = MySQLConnection(**db_config) cursor = conn.cursor() queryElab = "insert ignore into ELABDATADISP(UnitName,ToolNameID,NodeNum,EventDate,EventTime,load_value) values (%s,%s,%s,%s,%s,%s)" queryRaw = "insert ignore into RAWDATACOR(UnitName,ToolNameID,NodeNum,EventDate,EventTime,BatLevel,Temperature,Val0) values (%s,%s,%s,%s,%s,%s,%s,%s)" if("_1_" in pathFile): print("File tipo 1.\n") #print(unit_name, tool_name) dataToInsertElab = [] dataToInsertRaw = [] for row in data: rowSplitted = row.replace("\"","").split(";") eventTimestamp = rowSplitted[0].split(" ") date = eventTimestamp[0].split("-") date = date[2]+"-"+date[1]+"-"+date[0] time = eventTimestamp[1] an3 = rowSplitted[1] an4 = rowSplitted[2]#V unit battery OUTREG2 = rowSplitted[3] E8_181_CH2 = rowSplitted[4]#2 E8_181_CH3 = rowSplitted[5]#3 E8_181_CH4 = rowSplitted[6]#4 E8_181_CH5 = rowSplitted[7]#5 E8_181_CH6 = rowSplitted[8]#6 E8_181_CH7 = rowSplitted[9]#7 E8_181_CH8 = rowSplitted[10]#8 E8_182_CH1 = rowSplitted[11]#9 E8_182_CH2 = rowSplitted[12]#10 E8_182_CH3 = rowSplitted[13]#11 E8_182_CH4 = rowSplitted[14]#12 E8_182_CH5 = rowSplitted[15]#13 E8_182_CH6 = rowSplitted[16]#14 E8_182_CH7 = rowSplitted[17]#15 E8_182_CH8 = rowSplitted[18]#16 E8_183_CH1 = rowSplitted[19]#17 E8_183_CH2 = rowSplitted[20]#18 E8_183_CH3 = rowSplitted[21]#19 E8_183_CH4 = rowSplitted[22]#20 E8_183_CH5 = rowSplitted[23]#21 E8_183_CH6 = rowSplitted[24]#22 E8_183_CH7 = rowSplitted[25]#23 E8_183_CH8 = rowSplitted[26]#24 E8_184_CH1 = rowSplitted[27]#25 E8_184_CH2 = rowSplitted[28]#26 E8_184_CH3 = rowSplitted[29]#27 mv/V E8_184_CH4 = rowSplitted[30]#28 mv/V E8_184_CH5 = rowSplitted[31]#29 mv/V E8_184_CH6 = rowSplitted[32]#30 mv/V E8_184_CH7 = rowSplitted[33]#31 mv/V E8_184_CH8 = rowSplitted[34]#32 mv/V E8_181_CH1 = rowSplitted[35]#1 an1 = rowSplitted[36] an2 = rowSplitted[37] #print(unit_name, tool_name, 1, E8_181_CH1) #print(unit_name, tool_name, 2, E8_181_CH2) #print(unit_name, tool_name, 3, E8_181_CH3) #print(unit_name, tool_name, 4, E8_181_CH4) #print(unit_name, tool_name, 5, E8_181_CH5) #print(unit_name, tool_name, 6, E8_181_CH6) #print(unit_name, tool_name, 7, E8_181_CH7) #print(unit_name, tool_name, 8, E8_181_CH8) #print(unit_name, tool_name, 9, E8_182_CH1) #print(unit_name, tool_name, 10, E8_182_CH2) #print(unit_name, tool_name, 11, E8_182_CH3) #print(unit_name, tool_name, 12, E8_182_CH4) #print(unit_name, tool_name, 13, E8_182_CH5) #print(unit_name, tool_name, 14, E8_182_CH6) #print(unit_name, tool_name, 15, E8_182_CH7) #print(unit_name, tool_name, 16, E8_182_CH8) #print(unit_name, tool_name, 17, E8_183_CH1) #print(unit_name, tool_name, 18, E8_183_CH2) #print(unit_name, tool_name, 19, E8_183_CH3) #print(unit_name, tool_name, 20, E8_183_CH4) #print(unit_name, tool_name, 21, E8_183_CH5) #print(unit_name, tool_name, 22, E8_183_CH6) #print(unit_name, tool_name, 23, E8_183_CH7) #print(unit_name, tool_name, 24, E8_183_CH8) #print(unit_name, tool_name, 25, E8_184_CH1) #print(unit_name, tool_name, 26, E8_184_CH2) #print(unit_name, tool_name, 27, E8_184_CH3) #print(unit_name, tool_name, 28, E8_184_CH4) #print(unit_name, tool_name, 29, E8_184_CH5) #print(unit_name, tool_name, 30, E8_184_CH6) #print(unit_name, tool_name, 31, E8_184_CH7) #print(unit_name, tool_name, 32, E8_184_CH8) #--------------------------------------------------------------------------------------- dataToInsertRaw.append((unit_name, tool_name, 1, date, time, an4, -273, E8_181_CH1)) dataToInsertRaw.append((unit_name, tool_name, 2, date, time, an4, -273, E8_181_CH2)) dataToInsertRaw.append((unit_name, tool_name, 3, date, time, an4, -273, E8_181_CH3)) dataToInsertRaw.append((unit_name, tool_name, 4, date, time, an4, -273, E8_181_CH4)) dataToInsertRaw.append((unit_name, tool_name, 5, date, time, an4, -273, E8_181_CH5)) dataToInsertRaw.append((unit_name, tool_name, 6, date, time, an4, -273, E8_181_CH6)) dataToInsertRaw.append((unit_name, tool_name, 7, date, time, an4, -273, E8_181_CH7)) dataToInsertRaw.append((unit_name, tool_name, 8, date, time, an4, -273, E8_181_CH8)) dataToInsertRaw.append((unit_name, tool_name, 9, date, time, an4, -273, E8_182_CH1)) dataToInsertRaw.append((unit_name, tool_name, 10, date, time, an4, -273, E8_182_CH2)) dataToInsertRaw.append((unit_name, tool_name, 11, date, time, an4, -273, E8_182_CH3)) dataToInsertRaw.append((unit_name, tool_name, 12, date, time, an4, -273, E8_182_CH4)) dataToInsertRaw.append((unit_name, tool_name, 13, date, time, an4, -273, E8_182_CH5)) dataToInsertRaw.append((unit_name, tool_name, 14, date, time, an4, -273, E8_182_CH6)) dataToInsertRaw.append((unit_name, tool_name, 15, date, time, an4, -273, E8_182_CH7)) dataToInsertRaw.append((unit_name, tool_name, 16, date, time, an4, -273, E8_182_CH8)) dataToInsertRaw.append((unit_name, tool_name, 17, date, time, an4, -273, E8_183_CH1)) dataToInsertRaw.append((unit_name, tool_name, 18, date, time, an4, -273, E8_183_CH2)) dataToInsertRaw.append((unit_name, tool_name, 19, date, time, an4, -273, E8_183_CH3)) dataToInsertRaw.append((unit_name, tool_name, 20, date, time, an4, -273, E8_183_CH4)) dataToInsertRaw.append((unit_name, tool_name, 21, date, time, an4, -273, E8_183_CH5)) dataToInsertRaw.append((unit_name, tool_name, 22, date, time, an4, -273, E8_183_CH6)) dataToInsertRaw.append((unit_name, tool_name, 23, date, time, an4, -273, E8_183_CH7)) dataToInsertRaw.append((unit_name, tool_name, 24, date, time, an4, -273, E8_183_CH8)) dataToInsertRaw.append((unit_name, tool_name, 25, date, time, an4, -273, E8_184_CH1)) dataToInsertRaw.append((unit_name, tool_name, 26, date, time, an4, -273, E8_184_CH2)) #--------------------------------------------------------------------------------------- dataToInsertElab.append((unit_name, tool_name, 1, date, time, E8_181_CH1)) dataToInsertElab.append((unit_name, tool_name, 2, date, time, E8_181_CH2)) dataToInsertElab.append((unit_name, tool_name, 3, date, time, E8_181_CH3)) dataToInsertElab.append((unit_name, tool_name, 4, date, time, E8_181_CH4)) dataToInsertElab.append((unit_name, tool_name, 5, date, time, E8_181_CH5)) dataToInsertElab.append((unit_name, tool_name, 6, date, time, E8_181_CH6)) dataToInsertElab.append((unit_name, tool_name, 7, date, time, E8_181_CH7)) dataToInsertElab.append((unit_name, tool_name, 8, date, time, E8_181_CH8)) dataToInsertElab.append((unit_name, tool_name, 9, date, time, E8_182_CH1)) dataToInsertElab.append((unit_name, tool_name, 10, date, time, E8_182_CH2)) dataToInsertElab.append((unit_name, tool_name, 11, date, time, E8_182_CH3)) dataToInsertElab.append((unit_name, tool_name, 12, date, time, E8_182_CH4)) dataToInsertElab.append((unit_name, tool_name, 13, date, time, E8_182_CH5)) dataToInsertElab.append((unit_name, tool_name, 14, date, time, E8_182_CH6)) dataToInsertElab.append((unit_name, tool_name, 15, date, time, E8_182_CH7)) dataToInsertElab.append((unit_name, tool_name, 16, date, time, E8_182_CH8)) dataToInsertElab.append((unit_name, tool_name, 17, date, time, E8_183_CH1)) dataToInsertElab.append((unit_name, tool_name, 18, date, time, E8_183_CH2)) dataToInsertElab.append((unit_name, tool_name, 19, date, time, E8_183_CH3)) dataToInsertElab.append((unit_name, tool_name, 20, date, time, E8_183_CH4)) dataToInsertElab.append((unit_name, tool_name, 21, date, time, E8_183_CH5)) dataToInsertElab.append((unit_name, tool_name, 22, date, time, E8_183_CH6)) dataToInsertElab.append((unit_name, tool_name, 23, date, time, E8_183_CH7)) dataToInsertElab.append((unit_name, tool_name, 24, date, time, E8_183_CH8)) dataToInsertElab.append((unit_name, tool_name, 25, date, time, E8_184_CH1)) dataToInsertElab.append((unit_name, tool_name, 26, date, time, E8_184_CH2)) #--------------------------------------------------------------------------------------- cursor.executemany(queryElab, dataToInsertElab) cursor.executemany(queryRaw, dataToInsertRaw) conn.commit() #print(dataToInsertElab) #print(dataToInsertRaw) elif("_2_" in pathFile): print("File tipo 2.\n") #print(unit_name, tool_name) dataToInsertElab = [] dataToInsertRaw = [] for row in data: rowSplitted = row.replace("\"","").split(";") eventTimestamp = rowSplitted[0].split(" ") date = eventTimestamp[0].split("-") date = date[2]+"-"+date[1]+"-"+date[0] time = eventTimestamp[1] an2 = rowSplitted[1] an3 = rowSplitted[2] an1 = rowSplitted[3] OUTREG2 = rowSplitted[4] E8_181_CH1 = rowSplitted[5]#33 mv/V E8_181_CH2 = rowSplitted[6]#34 mv/V E8_181_CH3 = rowSplitted[7]#35 mv/V E8_181_CH4 = rowSplitted[8]#36 mv/V E8_181_CH5 = rowSplitted[9]#37 mv/V E8_181_CH6 = rowSplitted[10]#38 mv/V E8_181_CH7 = rowSplitted[11]#39 mv/V E8_181_CH8 = rowSplitted[12]#40 mv/V E8_182_CH1 = rowSplitted[13]#41 E8_182_CH2 = rowSplitted[14]#42 E8_182_CH3 = rowSplitted[15]#43 E8_182_CH4 = rowSplitted[16]#44 E8_182_CH5 = rowSplitted[17]#45 mv/V E8_182_CH6 = rowSplitted[18]#46 mv/V E8_182_CH7 = rowSplitted[19]#47 mv/V E8_182_CH8 = rowSplitted[20]#48 mv/V E8_183_CH1 = rowSplitted[21]#49 E8_183_CH2 = rowSplitted[22]#50 E8_183_CH3 = rowSplitted[23]#51 E8_183_CH4 = rowSplitted[24]#52 E8_183_CH5 = rowSplitted[25]#53 mv/V E8_183_CH6 = rowSplitted[26]#54 mv/V E8_183_CH7 = rowSplitted[27]#55 mv/V E8_183_CH8 = rowSplitted[28]#56 E8_184_CH1 = rowSplitted[29]#57 E8_184_CH2 = rowSplitted[30]#58 E8_184_CH3 = rowSplitted[31]#59 E8_184_CH4 = rowSplitted[32]#60 E8_184_CH5 = rowSplitted[33]#61 E8_184_CH6 = rowSplitted[34]#62 E8_184_CH7 = rowSplitted[35]#63 mv/V E8_184_CH8 = rowSplitted[36]#64 mv/V an4 = rowSplitted[37]#V unit battery #print(unit_name, tool_name, 33, E8_181_CH1) #print(unit_name, tool_name, 34, E8_181_CH2) #print(unit_name, tool_name, 35, E8_181_CH3) #print(unit_name, tool_name, 36, E8_181_CH4) #print(unit_name, tool_name, 37, E8_181_CH5) #print(unit_name, tool_name, 38, E8_181_CH6) #print(unit_name, tool_name, 39, E8_181_CH7) #print(unit_name, tool_name, 40, E8_181_CH8) #print(unit_name, tool_name, 41, E8_182_CH1) #print(unit_name, tool_name, 42, E8_182_CH2) #print(unit_name, tool_name, 43, E8_182_CH3) #print(unit_name, tool_name, 44, E8_182_CH4) #print(unit_name, tool_name, 45, E8_182_CH5) #print(unit_name, tool_name, 46, E8_182_CH6) #print(unit_name, tool_name, 47, E8_182_CH7) #print(unit_name, tool_name, 48, E8_182_CH8) #print(unit_name, tool_name, 49, E8_183_CH1) #print(unit_name, tool_name, 50, E8_183_CH2) #print(unit_name, tool_name, 51, E8_183_CH3) #print(unit_name, tool_name, 52, E8_183_CH4) #print(unit_name, tool_name, 53, E8_183_CH5) #print(unit_name, tool_name, 54, E8_183_CH6) #print(unit_name, tool_name, 55, E8_183_CH7) #print(unit_name, tool_name, 56, E8_183_CH8) #print(unit_name, tool_name, 57, E8_184_CH1) #print(unit_name, tool_name, 58, E8_184_CH2) #print(unit_name, tool_name, 59, E8_184_CH3) #print(unit_name, tool_name, 60, E8_184_CH4) #print(unit_name, tool_name, 61, E8_184_CH5) #print(unit_name, tool_name, 62, E8_184_CH6) #print(unit_name, tool_name, 63, E8_184_CH7) #print(unit_name, tool_name, 64, E8_184_CH8) #print(rowSplitted) #--------------------------------------------------------------------------------------- dataToInsertRaw.append((unit_name, tool_name, 41, date, time, an4, -273, E8_182_CH1)) dataToInsertRaw.append((unit_name, tool_name, 42, date, time, an4, -273, E8_182_CH2)) dataToInsertRaw.append((unit_name, tool_name, 43, date, time, an4, -273, E8_182_CH3)) dataToInsertRaw.append((unit_name, tool_name, 44, date, time, an4, -273, E8_182_CH4)) dataToInsertRaw.append((unit_name, tool_name, 49, date, time, an4, -273, E8_183_CH1)) dataToInsertRaw.append((unit_name, tool_name, 50, date, time, an4, -273, E8_183_CH2)) dataToInsertRaw.append((unit_name, tool_name, 51, date, time, an4, -273, E8_183_CH3)) dataToInsertRaw.append((unit_name, tool_name, 52, date, time, an4, -273, E8_183_CH4)) dataToInsertRaw.append((unit_name, tool_name, 56, date, time, an4, -273, E8_183_CH8)) dataToInsertRaw.append((unit_name, tool_name, 57, date, time, an4, -273, E8_184_CH1)) dataToInsertRaw.append((unit_name, tool_name, 58, date, time, an4, -273, E8_184_CH2)) dataToInsertRaw.append((unit_name, tool_name, 59, date, time, an4, -273, E8_184_CH3)) dataToInsertRaw.append((unit_name, tool_name, 60, date, time, an4, -273, E8_184_CH4)) dataToInsertRaw.append((unit_name, tool_name, 61, date, time, an4, -273, E8_184_CH5)) dataToInsertRaw.append((unit_name, tool_name, 62, date, time, an4, -273, E8_184_CH6)) #--------------------------------------------------------------------------------------- dataToInsertElab.append((unit_name, tool_name, 41, date, time, E8_182_CH1)) dataToInsertElab.append((unit_name, tool_name, 42, date, time, E8_182_CH2)) dataToInsertElab.append((unit_name, tool_name, 43, date, time, E8_182_CH3)) dataToInsertElab.append((unit_name, tool_name, 44, date, time, E8_182_CH4)) dataToInsertElab.append((unit_name, tool_name, 49, date, time, E8_183_CH1)) dataToInsertElab.append((unit_name, tool_name, 50, date, time, E8_183_CH2)) dataToInsertElab.append((unit_name, tool_name, 51, date, time, E8_183_CH3)) dataToInsertElab.append((unit_name, tool_name, 52, date, time, E8_183_CH4)) dataToInsertElab.append((unit_name, tool_name, 56, date, time, E8_183_CH8)) dataToInsertElab.append((unit_name, tool_name, 57, date, time, E8_184_CH1)) dataToInsertElab.append((unit_name, tool_name, 58, date, time, E8_184_CH2)) dataToInsertElab.append((unit_name, tool_name, 59, date, time, E8_184_CH3)) dataToInsertElab.append((unit_name, tool_name, 60, date, time, E8_184_CH4)) dataToInsertElab.append((unit_name, tool_name, 61, date, time, E8_184_CH5)) dataToInsertElab.append((unit_name, tool_name, 62, date, time, E8_184_CH6)) #--------------------------------------------------------------------------------------- cursor.executemany(queryElab, dataToInsertElab) cursor.executemany(queryRaw, dataToInsertRaw) conn.commit() #print(dataToInsertElab) #print(dataToInsertRaw) except Error as e: print('Error:', e) finally: cursor.close() conn.close() except Exception as e: print(f"An unexpected error occurred: {str(e)}\n") def main(): getDataFromCsvAndInsert(sys.argv[1]) if __name__ == '__main__': main()