Имеется скрипт который каждые 10 секунд делает скриншот
from PIL import Image, ImageGrab
from datetime import datetime, date, time
import sched, time
import os
if not os.path.exists('./screen'):
os.makedirs('./screen')
s = sched.scheduler(time.time, time.sleep)
def do_something(sc):
dt = datetime.strftime(datetime.now(), "%Y%m%d%H%M%S")
img = ImageGrab.grab()
img.save('./screen/' + dt +".png", "PNG")
s.enter(10, 1, do_something, (sc,))
s.enter(10, 1, do_something, (s,))
s.run()
Возможно ли сделать условие, что бы перед завершением принудительно скрипта выводилось на экран print("END") ?
Под принудительно, я подразумевю какой-то цикл, который к примеру в 18:00 сам будет завершать работу моего скрипта и выводить на экран print("END")
try/except KeyboardInterrupt. Можно ещё atexit модуль (только для нормального выхода или потестировать какие сигналы он понимает). – jfs Jan 19 '17 at 17:35print("END")– OuFinx Jan 19 '17 at 18:09s.enterabs()вызвать? Как 18:00 в time.time значение превратить? Как выйти из скрипта в callback (работает лиsys.exit()). – jfs Jan 19 '17 at 18:49dt = datetime.strftime(datetime.now(), "%H:%M")if dt > '18:00': sys.exit() else: код который я привел выше? – OuFinx Jan 19 '17 at 19:14datetime.now().hour > 18– user207200 Jan 19 '17 at 19:16datetime.now().hourиdatetime.now().minuteчто бы получилось `datetime.now() > 18:30 – OuFinx Jan 19 '17 at 20:00strftime, который вы написали, будет работать в связи с возможностью сравнения строк одинаковой длины по значению, но лучше так не делать, а явно сравнивать числа. – user207200 Jan 19 '17 at 20:06