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
Wie erstelle ich eine "Logdatei" ?
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.
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.
- __blackjack__
- User
- Beiträge: 13116
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
Wenn man das irgendwann auch mal maschinell weiterverarbeiten möchte, würde es sich anbieten die Textdatei als CSV oder JSON-Lines zu formatieren.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Ok vielen Dank soweit
Hab's jetzt folgendermaßen gelöst
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")
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())