zur Zeit versuche ich mein bisher geschriebenes Programm für einen Batterieprüfstand um eine logging-Funktion zu erweitern. Heißt letztlich: Ich möchte, dass mir das Programm während des Ladevorgangs einer Batterie meine Meßwerte in eine .csv-Datei schreibt und bei Programmende bzw. bei KeayboardInterrupt diese CSV mit dem Dateiname DATUM/UHRZEIT.csv abspeichert. Es soll also jedes mal eine neue Datei erstellt werden.
Am liebsten wäre mir, wenn ich mein selbst erstelltes template mit dem Namen 'logging_template.csv' öffnen, an den richtigen Stellen befüllen, und dann eben als neue Datei mit dem erwähnten Namen abspeichern kann.
Das Template hat zB diese Form (die roten einträge & die Measuring No. werden dann bei Programmlauf beschrieben):
[URL=https://www.bilder-upload.eu/bild-5dab7 ... 4.jpg.html]
Mein auf dieses Problem gekürzte Skript sieht folgendermaßen aus:
Code: Alles auswählen
pRequest = Request()
from_config = config()
charge_voltage, charge_ampere = pRequest.charge_request()
try:
with open('logging_template.csv','a') as datafile:
datafile.write(';' + time.asctime(time.localtime()) + '\n\n' + ';' + str(from_config.ABTASTFREQUENZ))
i=0 #Measuring Point No.
while charge_voltage < 40:
with open('logging_template.csv','a') as datafile:
datafile.write('\n' + ';;;' + str(i) + ';' + str(round(charge_voltage,2)) + ';' + str(round(charge_ampere,2)))
sleep(from_config.ABTASTFREQUENZ)
charge_voltage, charge_ampere = pRequest.charge_request()
i +=1
except KeyboardInterrupt:
datafile.close()
Nun habe ich eigentlich zwei Probleme,
1. Das Template wird lediglich voll geschrieben aber nicht als neue Datei mit gewünschtem Dateinamen gespeichert. Hierfür hatte ich recherchiert und eine Lösung gefunden (verstanden), an deren Umsetzung ich aber scheitere: "# once create the destination CSV file with temporary name (e.g. "temp.csv") by a FeatureWriter, and then rename it to the timestamp. i.e. move the file finally. Also letztlich eine temporäre datei erstellen und diese dann nach schluss umbennen. Ich könnte letztlich mein durchaus mikriges tamplate auch einfach innerhalb des Codes erstellen lassen, fände es aber eleganter eine template datei zu befüllen, da ich dieses gerne gegebenenfalls erweitern möchte.
2. Anstatt bei Zelle A1 anzufangen zu zählen und zu befüllen, wird immer zuerst die Zelle B6 befüllt (also wird anscheinend bei Zelle A6 angefangen zu zählen)... Bezüglich der Navigation innerhalb einer CSV Datei hatte ich herausgefunden, dass "# Columns are separated with commas, and rows are separated by line breaks, or the “\n” character.
Hier ein Beispiel, wie die logging_template.csv datei dann aussieht:
[URL=https://www.bilder-upload.eu/bild-6999b ... 2.jpg.html]
Danke für eure Anregungen
