我想在我的 Mac OSX 10.8.4 上设置一个 Python 脚本,让它每周一到周五(不是周日和周六)运行。从我目前发现的情况来看,我似乎想使用 cron。但在我对我的电脑进行一些可怕的操作之前,有人能确认一下这是否符合我的要求吗?
>>> crontab -e
>>> 30 4 * * 1-5 python /Users/lego90511/PycharmProjects/Stock Scanner/stock_scanner.py
如果这确实有效请告诉我,我该如何将其从 chron 中删除?
答案1
这应该可行,但请将其替换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,你可以保存如下 plist ~/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
然后通过运行或注销并重新登录来加载 plist 。您可以通过卸载和加载来对 plist 应用更改。
请注意,cron 和 launchd 都使用 24 小时制。如果您想要的是下午 4 点而不是上午 4 点,请将小时值替换为 16。
答案2
看一眼榛。
这是我用于满足所有自动化需求的应用程序。我强烈推荐它。