Hallo,
Ich habe folgendes Problem: Ich schreibe Daten in eine CSV Datei. Dabei ist auch ein Zeitstempel. Später möchte ich den Zeitstempel wieder aufrufen und herausfinden wie viel zeit seit dem vergangen ist. Das Problem ist, dass der Zeitstempel dann an String ist und ich nicht mit Ihm weiterarbeiten kann.
So schreibe ich in die CSV Datei
def schreibeCSV(name):
try:
d = open(name, "a")
except:
print("Dateizugriff nicht erfolgreich")
li=[x, datetime.datetime.now()]
d.write(str(li[0])+";"+str(li[1])+"\n")
d.close()
Ich möchte also anschließend die Zeit wieder auslesen und mit der aktuellen zeit vergleichen. Dabei habe ich mir folgendes gedacht:
t1=datetime.datetimenow()
t2="hier dann die ausgelesene Zeit"
delta = t2-t1
time=delta.seconds
das funktioniert allerdings nicht, da ich natürlich nicht mit einem string rechnen kann
Datum als String zurück in Datum
Zum Schreiben von csv-Dateien benutzt man das csv-Modul. Das exception-Handling ist kaputt, denn wenn der Zugriff nicht erfolgreich war, dann ist auch der Schreibversuch nicht erfolgreich; ergo, wenn man einen Fehler nicht sinnvoll behandeln kann, sollte man ihn gar nicht behandeln.
Variablennamen sollten etwas aussagen, also nicht einbuchstabig sein, name ist genauer gesagt ein dateiname. `x` kommt aus dem Nichts in die Funktion, das muß aber ein Parameter sein.
Es kommt also etwa soetwas raus:
Beim Lesen mußt Du die Zeit wieder parsen, z.b. mit dateutil.parser.parse
Variablennamen sollten etwas aussagen, also nicht einbuchstabig sein, name ist genauer gesagt ein dateiname. `x` kommt aus dem Nichts in die Funktion, das muß aber ein Parameter sein.
Es kommt also etwa soetwas raus:
Code: Alles auswählen
def schreibe_csv(filename, x):
with open(filename, 'a') as output:
output = csv.writer(output, delimiter=';')
output.write([x, datetime.datetime.now()])
- __blackjack__
- User
- Beiträge: 13242
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
Oder `datetime.datetime.strptime()`. Und bei der Berechnung der vergangenen Zeit solltest man `total_seconds` statt `seconds` verwenden, sonst kann es sein das nicht alle Sekunden berücksichtigt sind/werden.
Please call it what it is: copyright infringement, not piracy. Piracy takes place in international waters, and involves one or more of theft, murder, rape and kidnapping. Making an unauthorized copy of a piece of software is not piracy, it is an infringement of a government-granted monopoly.
danke habe es auch gerade so gelöst. Bin neu hier und weiß nicht wie man das Problem als gelöst einträgt oder das Thema löscht__blackjack__ hat geschrieben: ↑Mittwoch 6. Februar 2019, 11:52 Oder `datetime.datetime.strptime()`. Und bei der Berechnung der vergangenen Zeit solltest man `total_seconds` statt `seconds` verwenden, sonst kann es sein das nicht alle Sekunden berücksichtigt sind/werden.
danke habe es auch gerade so gelöst. Bin neu hier und weiß nicht wie man das Problem als gelöst einträgt oder das Thema löscht__blackjack__ hat geschrieben: ↑Mittwoch 6. Februar 2019, 11:52 Oder `datetime.datetime.strptime()`. Und bei der Berechnung der vergangenen Zeit solltest man `total_seconds` statt `seconds` verwenden, sonst kann es sein das nicht alle Sekunden berücksichtigt sind/werden.