Python Timer

Gast #5692455
Lesenswert?

Auf die schnelle, wuerde ich das von Hand in etwa so machen. Nicht 
schoen, aber selten:
1
#!/usr/bin/env python
2

3
import datetime
4
import threading
5

6

7
def do_your_work():
8
    # do your work
9
    pass
10

11

12
def get_time_as_str():
13
    time = datetime.datetime.now()
14
    return str(time)[11:16]
15

16

17
def is_it_time_to_end(deadline):
18
    if get_time_as_str() == deadline:
19
        return True
20
    else:
21
        return False
22

23

24
def main():
25
    start = "08:00"
26
    end = "08:15"
27

28
    start_triggerd = False
29

30
    timer = threading.Event()
31

32
    while True:
33
        if start_triggerd is False and get_time_as_str() == start:
34
            start_triggerd = True
35
        else:
36
            print(get_time_as_str())
37
            timer.wait(60.0)
38
            continue
39

40
        while is_it_time_to_end(end) is False:
41
            do_your_work()
42

43
        start_triggerd = False
44

45

46
if __name__ == '__main__':
47
    main()

Das Zeitmanagement beim Warten koennte man verbessern.
Gast #5692520
Lesenswert?

Ich habs nochmal ueberarbeteitet.
1
#!/usr/bin/env python
2

3
import datetime
4
import threading
5

6

7
def do_your_work():
8
    # do your work
9
    pass
10

11

12
def get_time_as_num():
13
    time = datetime.datetime.now()              # -> 2019-01-12 11:09:33.033172
14
    time = str(time)[11:13] + str(time)[14:16]  # 2019-01-12 11:09:33.033172 -> 11:09 -> 1109
15
    return int(time)
16

17

18
def main():
19
    start = 800    # 08:00 Uhr
20
    end = 815      # 08:15 Uhr
21

22
    timer = threading.Event()
23

24
    while True:
25
        time = get_time_as_num()
26
        if time >= start and time <= end:
27
            while get_time_as_num() < end:
28
                do_your_work()
29

30
        timer.wait(59.0)
31

32

33
if __name__ == '__main__':
34
    main()
Ist noch immer nicht schoen, und das Zeitmanagement kann man immernoch 
verbessern. Aber fuer auf die schnelle am Morgen.

Gruesse

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren