#!/usr/bin/python # -*- coding: utf8 -*- from datetime import datetime, timedelta import sys if len(sys.argv) != 3: print ("Die Wochen Datei und das Jahr angeben") quit(1) args = sys.argv[1].split(".") if args[1] != "csv": print ("Der Typ ist nicht csv") quit(1) if len(args[0]) == 11: weeknr = sys.argv[1][5:6] else: weeknr = sys.argv[1][5:7] wsname = sys.argv[2] + "/" + sys.argv[1] fsname = sys.argv[2] + "/" + args[0] + ".sql" print (wsname) print (fsname) print (weeknr) woche = [] sum_bezug = 0 sum_einsp = 0 sum_verbr = 0 sum_erzeug = 0 ################## def datum1(line): ts = line.split(";") dat1 = ts[0][:10] # dat1 = "05.08.2021" print ("Datum: " + dat1) dt = datetime.strptime(dat1, "%d.%m.%Y") # print (dt) start = dt - timedelta(days=dt.weekday()) for x in range(7): next = start + timedelta(days=x) woche.append(next.strftime("%d.%m.%Y")) # print (woche) ################## def summieren(line): global sum_bezug global sum_einsp global sum_verbr global sum_erzeug ts = line.split(";") bezug = float(ts[1].replace(",",".")) sum_bezug += bezug einsp = float(ts[2].replace(",",".")) sum_einsp += einsp verbr = float(ts[3].replace(",",".")) sum_verbr += verbr erzeug = float(ts[6].replace(",",".")) sum_erzeug += erzeug # main #################################### fw = open (wsname, "r") fs = open (fsname, "w") fs.write ("use ulli;\n") # Die alten Daten löschen fs.write ("delete from pv_data where weeknr = " + weeknr + ";\n") # Die 1. Zeile line = fw.readline() print (line) # Die 1. Zeile mit Werten line = fw.readline() datum1(line) for d in woche: print (">>>: " + d) dt = datetime.strptime(d, "%d.%m.%Y") dsql = dt.strftime("%Y-%m-%d") print ("---: " + dsql) count = 1 fw.seek(0) for line in fw: if count > 1: ts = line.split(";") dat1 = ts[0][:10] if dat1 == d: summieren(line) count += 1 # print (count) # print (sum_bezug) print (str(round(sum_bezug/11.9,1))) # print (sum_einsp) print (str(round(sum_einsp/11.9,1))) # print (sum_verbr) print (str(round(sum_verbr/11.9,1))) print (str(round(sum_erzeug/11.9,1))) val = str(round(sum_bezug/11.9,1)) + "," + str(round(sum_einsp/11.9,1)) + "," + str(round(sum_verbr/11.9,1)) + "," + str(round(sum_erzeug/11.9,1)) fs.write ("insert into pv_data (datum,bezug,einsp,verbr,erzeug,weeknr) values ('" + dsql + "'," + val + "," + weeknr + ");\n") sum_bezug = 0 sum_einsp = 0 sum_verbr = 0 sum_erzeug = 0 count = 1 # quit() fw.close() fs.close()