Расписание Python Script - Windows 7 - PullRequest
46 голосов
/ 28 апреля 2010

У меня есть скрипт на python, который я хотел бы запускать через регулярные промежутки времени. Я использую Windows 7. Каков наилучший способ сделать это? Самый простой способ?

Ответы [ 3 ]

59 голосов
/ 28 апреля 2010

Вы можете сделать это в командной строке следующим образом:

schtasks /Create /SC HOURLY /TN PythonTask /TR "PATH_TO_PYTHON_EXE PATH_TO_PYTHON_SCRIPT"

Это создаст почасовую задачу под названием «PythonTask». Вы можете заменить ЧАСЫ на ЕЖЕДНЕВНО, ЕЖЕНЕДЕЛЬНО и т. Д. PATH_TO_PYTHON_EXE будет выглядеть примерно так: C: \ python25 \ python.exe. Проверьте больше примеров, написав это в командной строке:

schtasks /?

В противном случае вы можете открыть планировщик задач и сделать это через графический интерфейс. Надеюсь, это поможет.

52 голосов
/ 15 марта 2011

Вы можете использовать графический интерфейс с панели управления (так называемые «запланированные задачи»), чтобы добавить задачу, большая часть которой не требует пояснений, но есть две вещи, на которые следует обратить внимание:

  • Убедитесь, что вы указали C:\python27\python.exe в качестве пути к программе и путь к сценарию в качестве аргумента.

  • Если вы выберете Run whether user is logged on or not Я получу ошибку: The directory name is invalid (0x87010B). Выбор Run only when user is logged on «решает» эту проблему.

Мне потребовалось немало времени, чтобы понять ...

11 голосов
/ 28 апреля 2010

Простой способ сделать это - иметь постоянно работающий скрипт с циклом задержки. Например:

def doit():
    print "doing useful things here"

if __name__ == "__main__":
    while True:
        doit()
        time.sleep(3600) # 3600 seconds = 1 hour

Затем оставьте этот скрипт работающим, и он будет выполнять свою работу один раз в час.

Обратите внимание, что это только один подход к проблеме; использование службы, предоставляемой операционной системой, такой как планировщик задач, - это еще один способ избежать необходимости постоянно запускать скрипт.

...