Автоматизировать скрипт Python Mac
Я хочу настроить скрипт Python для запуска каждый рабочий день (не воскресенье и суббота) на моем Mac OSX 10.8.4. Из того, что я нашел до сих пор, похоже, что я хочу использовать cron. Но прежде чем я сделаю что-то ужасное с моим компьютером, кто-нибудь может подтвердить, что я сделаю то, что хочу?
>>> crontab -e
>>> 30 4 * * 1-5 python /Users/lego90511/PycharmProjects/Stock Scanner/stock_scanner.py
Если это как-то работает, скажите, пожалуйста, как я могу удалить его из хрон?
2 ответа
Это должно работать, но заменить Stock Scanner
с Stock\ Scanner
, Вы можете отменить изменения, запустив crontab -e
и просто удаляя строку. Если вы не изменились EDITOR
и вы не знаете, как использовать vi
, ты можешь использовать EDITOR=nano crontab -e
,
Так в основном беги crontab -e
(или же EDITOR=nano crontab -e
) и добавьте следующую строку:
30 4 * * 1-5 python ~/PycharmProjects/Stock\ Scanner/stock_scanner.py
Формат crontab описан в man 5 crontab
,
Используя launchd, вы можете сохранить этот лист как ~/Library/LaunchAgents/test.plist
:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>test</string>
<key>ProgramArguments</key>
<array>
<string>python</string>
<string>/Users/lego90511/PycharmProjects/Stock Scanner/stock_scanner.py</string>
</array>
<key>StartCalendarInterval</key>
<array>
<dict>
<key>Weekday</key>
<integer>1</integer>
<key>Hour</key>
<integer>4</integer>
<key>Minute</key>
<integer>30</integer>
</dict>
<dict>
<key>Weekday</key>
<integer>2</integer>
<key>Hour</key>
<integer>4</integer>
<key>Minute</key>
<integer>30</integer>
</dict>
<dict>
<key>Weekday</key>
<integer>3</integer>
<key>Hour</key>
<integer>4</integer>
<key>Minute</key>
<integer>30</integer>
</dict>
<dict>
<key>Weekday</key>
<integer>4</integer>
<key>Hour</key>
<integer>4</integer>
<key>Minute</key>
<integer>30</integer>
</dict>
<dict>
<key>Weekday</key>
<integer>5</integer>
<key>Hour</key>
<integer>4</integer>
<key>Minute</key>
<integer>30</integer>
</dict>
</array>
</dict>
</plist>
Затем загрузите список, запустив launchctl load ~/Library/LaunchAgents/test.plist
или выйдя из системы и вернувшись обратно. Вы можете применить изменения к списку, выгрузив и загрузив его.
Обратите внимание, что и cron, и launchd используют 24-часовые часы. Если вы имели в виду 4 часа дня вместо 4 часов утра, замените значения часов на 16.
Посмотрите на Хейзел.
Это приложение, которое я использую для всех моих потребностей в автоматизации. Я очень рекомендую это.