Seite 1 von 1
Timer in Python: Nach X Stunden Programm beenden
Verfasst: Sonntag 15. Februar 2009, 20:33
von th30n3
Guten Tag,
ich bin ein ziemlicher Laie also Anfänger in Python. Meine erste Frage hat mit Timern zu tun.
Ich hatte mir dafür folgende Codeschnipsel bereitgestellt:
Script schließen:
Stunden in Sekunden umwandeln:
Und halt den Standart Timer-Code. Nun ist meine Frage, wie stelle ich es an, das meine Timer nach X Stunden das Script beendet?
Mfg
th30n3
(Sollte ich mich nicht deutlich genug ausgedrückt haben sagt es einfach
)
Verfasst: Sonntag 15. Februar 2009, 20:42
von str1442
Was für Timer? Dinge aus dem Modul time?
sys.exit(1) Gibt 1 Als Rückgabewert an den Aufrufer zurück. Das deutet in aller Regel auf einen Fehler hin. 0 wäre korrekt bei einem richtig beendetem Programm. eval() brauchst du nicht und solltest du vergessen. Oder benutzt es zumindest einfach nicht.
http://docs.python.org/tutorial/index.html
Schau dir dieses Tutorial mal an. Oder
http://www.ibiblio.org/swaroopch/byteof ... on_120.pdf
wenns Deutsch sein soll.
Re: Timer in Python: Nach X Stunden Programm beenden
Verfasst: Sonntag 15. Februar 2009, 20:44
von numerix
th30n3 hat geschrieben:(Sollte ich mich nicht deutlich genug ausgedrückt haben sagt es einfach
)
Ich sag es einfach ...
Verfasst: Sonntag 15. Februar 2009, 20:58
von th30n3
Nun gut, 1 mit 0 ersetzt, evals entfernt...
Jetzt gibt mir Linux folgendes aus:
Code: Alles auswählen
ValueError: I/O operation on closed file
Traceback (most recent call last):
File "logging/__init__.py", line 737, in emit
ValueError: I/O operation on closed file
Verfasst: Sonntag 15. Februar 2009, 21:04
von Leonidas
Nutzt du denn überhaupt ``logging``?
Verfasst: Sonntag 15. Februar 2009, 21:16
von derdon
Suchst du evtl.
time.sleep?
Verfasst: Sonntag 15. Februar 2009, 21:16
von numerix
th30n3 hat geschrieben:Nun gut, 1 mit 0 ersetzt, evals entfernt...
Jetzt gibt mir Linux folgendes aus:
Code: Alles auswählen
ValueError: I/O operation on closed file
Traceback (most recent call last):
File "logging/__init__.py", line 737, in emit
ValueError: I/O operation on closed file
Du solltest vielleicht mal den Code posten, der diese Fehlermeldung produziert.
Verfasst: Sonntag 15. Februar 2009, 21:27
von th30n3
Ich weiß nicht genau ob es der ist aber:
Code: Alles auswählen
# log.py - Handler for logfiles
#
# Copyright (C) 2008 microkernel
# Author(s): microkernel (*censored*)
#
# This program is free software; you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free Software
# Foundation; either version 3 of the License, or (at your option) any later
# version.
#
# This program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
# details.
#
# You should have received a copy of the GNU General Public License along with
# this program; if not, see <http://www.gnu.org/licenses/>.
import logging, sys
stdOutHandler = logging.StreamHandler(sys.stdout)
fileHandler = logging.FileHandler('log.txt', 'w')
stdOutFormat = logging.Formatter("[%(asctime)s] %(message)s", "%H:%M:%S")
fileFormat = logging.Formatter("[%(asctime)s] [%(levelname)s] %(message)s", "%H:%M:%S")
stdOutHandler.setFormatter(stdOutFormat)
fileHandler.setFormatter(fileFormat)
logger = logging.getLogger()
logger.addHandler(stdOutHandler)
logger.addHandler(fileHandler)
logger.setLevel(logging.DEBUG)
Verfasst: Sonntag 15. Februar 2009, 22:42
von numerix
th30n3 hat geschrieben:Ich weiß nicht genau ob es der ist aber:
Ich blick immer noch nicht durch: Wieso weißt du nicht, welcher Code den Fehler produziert? Das gezeigte Stück ist ja anscheinend gar nicht von dir. Geht es gar nicht um eigenen Code?
Verfasst: Sonntag 15. Februar 2009, 22:55
von hendrikS
C3PO an TH30N3
Bitte nicht StandarD mit T schreiben. Macht keinen guten Eindruck.
Sonst wuerde ich mir mal das Modul datetime angucken.
Edit:
Oder vielleicht noch besser Timer Objects. Hallo Welt Beispiel gibts in der Doku.
Verfasst: Montag 16. Februar 2009, 14:55
von th30n3
Ja, es geht tatsächlich nicht um meinen Code
Es geht um Opensource und ich woltle nur einen kleinen Timer einbauen damit sich das Script nach X Stunden selber schliesst.
Nun scheitert es wohl an diesm Logging. Also Code steht oben, nur wo liegt der Fehler?
Verfasst: Montag 16. Februar 2009, 22:08
von BlackJack
Der Fehler liegt wahrscheinlich in der Art und Weise wie Du das Programm beenden willst. Warum überhaupt im Programm selbst? Das würde ich eher von Aussen machen.