Betriebsumgebung
Raspberry Pi 2 Model B (Unterhalb von RPi)
Raspbian Jessie
Python 2.7.9
Warten Sie, bis die Startzeit erforderlich ist, damit RPi die automatische Protokollierungsfunktion übernimmt.
Es wurde wie folgt implementiert.
test_wait_170825.py
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
import time
import serial
import datetime
# SET start time
start_time = datetime.time(13,45,0)
start_str = start_time.strftime("%H:%M:%S")
while True:
now_time = datetime.datetime.now()
if start_str == now_time.strftime("%H:%M:%S"):
break
time.sleep(0.1) # [sec]
print('hello')
print(datetime.datetime.now())
run
$ python test_wait_170825.py
hello
2017-08-25 13:45:00.074149
Das Abfrageintervall für time.sleep () kann etwas länger sein (z. B. 0,3).
Es gibt eine Möglichkeit, crontab für diese Art der Verarbeitung zu verwenden, aber ich habe es in Python implementiert, weil ich es gemeinsam mit Python-Code verwalten möchte.
util_wait_170825.py
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
import time
import datetime
def wait_until(HH, MM, SS):
start_time = datetime.time(HH, MM, SS)
start_str = start_time.strftime("%H:%M:%S")
while True:
now_time = datetime.datetime.now()
if start_str == now_time.strftime("%H:%M:%S"):
break
time.sleep(0.1) # [sec]
if __name__ == '__main__':
print('start waiting')
wait_until(13, 58, 30) # HH, MM, SS
print('hello')
print(datetime.datetime.now())
Ich habe die Implementierungsmethode von @shiracamus verwendet. Danke für die Information.
util_wait_170825.py
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
import time
import datetime
def wait_until(HH, MM, SS):
now = datetime.datetime.now()
start = datetime.datetime(now.year, now.month, now.day, HH, MM, SS)
wait_sec = (start - now).total_seconds()
if wait_sec < 0:
wait_sec += datetime.timedelta(days=1).total_seconds()
time.sleep(wait_sec)
if __name__ == '__main__':
print('start waiting')
wait_until(14, 33, 30) # HH, MM, SS
print('hello')
print(datetime.datetime.now())