Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
import datetime
if not os.path.isfile(statefile):
return False
# Calculate the delta from now - statefile mtime
now = datetime.datetime.now()
mtime = datetime.datetime.fromtimestamp(os.path.getmtime(statefile))
delta = now - mtime
print delta.seconds
Leider werden so nicht die gesamten Sekunden errechnet, speziell wenn das delta > 24 Stunden ist.
was mache ich falsch?
Das "delta" hat eine Methode "total_seconds", damit bekommst du die vergangenen Sekunden. Die Sekunden des "seconds"-Attribut geben nur die Sekunden an, welche nicht in Minuten dargestellt werden konnten.
Die kompletten Sekunden musst du anhand der days und seconds der timedelta-Instanz selber ausrechnen. Ab Python 3.2 gibt es das mit timedelta.total_seconds() auch schon eingebaut.
Du musst nichts extra installieren, die Methode ist in jedem Python ab 2.7 enthalten. Das ist ein Backport für das Modul von 3.2 auf 2.7, das hat nichts mit der Paketverwaltung deines Betriebssystems zu tun.
@osd11
Das ist keine Fehlermeldung, sondern die sichtbare (druckbare) Repräsentation der ``total_seconds`` Methode. Du musst eine Methode natürlich aufrufen, nicht nur "anschauen"...
mutetella
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit )