Hallo zusammen,
ich suche nach einer Möglichkeit, während das Programm läuft, eine Variable zu ändern.
Die Situation ist folgende: Nehmen wir einmal an, ich hätte im Programm eine Pause von 10 Minuten eingebaut. Nun möchte ich aber während das Programm läuft diesen Wert auf 5 Sekunden herabsetzen.
Wie kann ich das bewerkstelligen?
CU,
API
Variablen zur Laufzeit ändern
Das hängt davon ab, wie du die "Pause" realisiert hast. Je nach dem geht es gar nicht oder eben doch - dazu müsstest du mal entsprechenden Code zeigen.api hat geschrieben:Die Situation ist folgende: Nehmen wir einmal an, ich hätte im Programm eine Pause von 10 Minuten eingebaut. Nun möchte ich aber während das Programm läuft diesen Wert auf 5 Sekunden herabsetzen.
Wie kann ich das bewerkstelligen?
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Versuch mal den ``=`` Operator.
SCNR, aber das bot sich bei der Frage echt an.
Code: Alles auswählen
dauer = 10
# ...
dauer = 5
# PROFIT!
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Hi Leonidas,
der war gut... )
Aber das Beispiel passt schon so..
Aber wenn ich das in der Form mache, läuft das Prg doch trotzdem mit dem Wert 10 weiter, oder etwa nicht??
Das wird doch erst bei einem Neustart aktiv..
der war gut... )
Aber das Beispiel passt schon so..
Code: Alles auswählen
pause = 10
#...
# und dann zwischendurch
pause = 5
Das wird doch erst bei einem Neustart aktiv..
warum probierst du es nich einfach aus ?api hat geschrieben:
Aber wenn ich das in der Form mache, läuft das Prg doch trotzdem mit dem Wert 10 weiter, oder etwa nicht??
Das wird doch erst bei einem Neustart aktiv..
Code: Alles auswählen
pause = 10
print pause
#...
# und dann zwischendurch
pause = 5
print pause
Ich glaube, was du willst, ist ungefähr das hier:
Code: Alles auswählen
from time import time # fuer Windows besser: clock
from random import random
dauer = 10
t0 = time()
while time()-t0<dauer:
zahl = random()
print zahl
if dauer>1 and zahl<0.1:
print "Jetzt noch 1 Sekunde ..."
dauer = 1
Hallo numerix,
danke für deine Antwort, aber ich glaube, ich habe mich wohl recht unverständlich ausgedrückt. Deshalb jetzt mal mein Problem anhand der realen Situation:
Ich habe ein Programm, welches ein Logfile analysiert. Bei einem möglichen Fehler - zu erkennen anhand eines Logfile-Eintrags - wird eine Mail generiert und an verschiedene Leute geschickt. Diese Überprüfung findet alle 4 Sekunden statt - soll ja schließlich aktuell sein.
Wenn es nun zu einem Fehlerfall kommt, bzw. zu mehreren Fehlern (kurz aufeinander folgend), dann würde ich gerne - ohne das Prg zu beenden und es neu zu starten - eine Variable neu setzen, die die Zeit beinhaltet, die das Prg zwischen 2 Läufen wartet (eben diese 4 Sekunden).
Unter UNIX kann ich zu diesem Zweck die Variable, welche in einer Konfig-Datei steht, einfach neu laden (bzw. die Konfig-Datei). Soll heissen, in dieser Konfig-Datei steht:
...
pause=4
...
Nun ändere ich den Wert zur Laufzeit ab in:
...
pause=200
...
In dem Prg gibt es in einer while-Schleife den Befehl:
sleep $pause
(das wäre jetzt ein Shell-Prg)
Wie aber realisiere ich das unter Python?
Kann ich dort auch Variablen in eine Konfig-Datei auslagern und diese evtl. 1mal pro Minute einladen? Oder wie macht man sowas?
danke für deine Antwort, aber ich glaube, ich habe mich wohl recht unverständlich ausgedrückt. Deshalb jetzt mal mein Problem anhand der realen Situation:
Ich habe ein Programm, welches ein Logfile analysiert. Bei einem möglichen Fehler - zu erkennen anhand eines Logfile-Eintrags - wird eine Mail generiert und an verschiedene Leute geschickt. Diese Überprüfung findet alle 4 Sekunden statt - soll ja schließlich aktuell sein.
Wenn es nun zu einem Fehlerfall kommt, bzw. zu mehreren Fehlern (kurz aufeinander folgend), dann würde ich gerne - ohne das Prg zu beenden und es neu zu starten - eine Variable neu setzen, die die Zeit beinhaltet, die das Prg zwischen 2 Läufen wartet (eben diese 4 Sekunden).
Unter UNIX kann ich zu diesem Zweck die Variable, welche in einer Konfig-Datei steht, einfach neu laden (bzw. die Konfig-Datei). Soll heissen, in dieser Konfig-Datei steht:
...
pause=4
...
Nun ändere ich den Wert zur Laufzeit ab in:
...
pause=200
...
In dem Prg gibt es in einer while-Schleife den Befehl:
sleep $pause
(das wäre jetzt ein Shell-Prg)
Wie aber realisiere ich das unter Python?
Kann ich dort auch Variablen in eine Konfig-Datei auslagern und diese evtl. 1mal pro Minute einladen? Oder wie macht man sowas?
Code: Alles auswählen
time.sleep(sec)
Ok, klar das könnte man machen. Aber wenn ich jetzt viele verschiedene Variablen zur Laufzeit änderbar machen möchte, so ist es ziemlich aufwendig, dafür extra Routinen zu schreiben.
In einem UNIX-Shell-Prg kann ich einfach eine Konfig-Datei einbinden und diese regelmäßig aufrufen. Da stehen dann einfach Variablen mit Werten drin und diese werden nach jedem Aufruf neu gesetzt, bzw. behalten ihren alten Wert, wenn ich nichts geändert habe.
Kann man in Python sowas vielleicht in eine Funktion oder Klasse einbinden?
In einem UNIX-Shell-Prg kann ich einfach eine Konfig-Datei einbinden und diese regelmäßig aufrufen. Da stehen dann einfach Variablen mit Werten drin und diese werden nach jedem Aufruf neu gesetzt, bzw. behalten ihren alten Wert, wenn ich nichts geändert habe.
Kann man in Python sowas vielleicht in eine Funktion oder Klasse einbinden?
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Ich bin ja immer wieder erstaunt wie oft so etwas nützlich sein kann, aber Cellulose könnte etwas für dich sein. Oder, wenn es simpler sein soll, eben die Klasse.api hat geschrieben:Ok, klar das könnte man machen. Aber wenn ich jetzt viele verschiedene Variablen zur Laufzeit änderbar machen möchte, so ist es ziemlich aufwendig, dafür extra Routinen zu schreiben.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice