Seite 1 von 1
Wie erstelle ich eine "Logdatei" ?
Verfasst: Montag 3. September 2018, 16:48
von Col.Mars
Schönen Guten Tag, ich habe ein Programm geschrieben mit welchem man grob gesagt Guthaben auf dafür vorgesehene Konten laden kann.
Hierbei wäre es ganz schön, wenn man nachvollziehen könnte, wie viel, wann und auf welches Konto Guthaben überwiesen wurde.
Mein Plan ist, dass mein Programm eben genannte Angaben in eine txt Datei einfügt und speichert.
Nur wie?
Vielen Dank schon mal

Re: Wie erstelle ich eine "Logdatei" ?
Verfasst: Montag 3. September 2018, 16:59
von __deets__
Oeffnen, schreiben, schliessen?
Im Ernst: viel mehr ist da so ohne weiteres zumindest nicht dran, du kannst das Python logging Modul dafuer verwenden, aber das ist eigentlich eher dafuer gedacht, logging fuer Entwicklungs und Debugging-Zwecke anzubieten. Einen "Papertrail" oder Transaktions-Log schreibt man besser selbst. Damit das nicht aus versehen wegkonfiguriert wird. Und dazu oeffnent, schreibt, schliesst man eine Datei. Oder benutzt eine Datenbank.
Re: Wie erstelle ich eine "Logdatei" ?
Verfasst: Montag 3. September 2018, 17:20
von __blackjack__
Wenn man das irgendwann auch mal maschinell weiterverarbeiten möchte, würde es sich anbieten die Textdatei als CSV oder JSON-Lines zu formatieren.
Re: Wie erstelle ich eine "Logdatei" ?
Verfasst: Montag 3. September 2018, 23:14
von Col.Mars
Ok vielen Dank soweit
Hab's jetzt folgendermaßen gelöst
Code: Alles auswählen
def logging():
file = open("log.txt","a")
if more:
file.write(rfid + " " + name + " " + vorname + " " + "+" + guthaben + "€" + " " + time.strftime("am %d.%m.%Y um %H:%M Uhr") +"\n")
else:
file.write(rfid + " " + name + " " + vorname + " " + "-" + guthaben + "€" + " " + time.strftime("am %d.%m.%Y um %H:%M Uhr") +"\n")
Re: Wie erstelle ich eine "Logdatei" ?
Verfasst: Montag 3. September 2018, 23:43
von Sirius3
Namen sollten nicht aus dem Nichts auftauchen. Alles was eine Funktion braucht, bekommt sie über ihre Argumente. Dateien müssen auch wieder geschlossen werden. Statt `more` wäre ein positiver oder negativer Wert für `guthaben` einfacher. Stringformatierung benutzen.
Code: Alles auswählen
def logging(rfid, name, vorname, guthaben):
with open("log.txt", "a") as output:
output.write("{0} {1} {2} {3:+.2f}€ am {4:%d.%m.%Y} um {4:%H:%M} Uhr\n".format(rfid, name, vorname, guthaben, datetime.datetime.now())