美文网首页
在Mac上定时执行Python脚本

在Mac上定时执行Python脚本

作者: 杨闯 | 来源:发表于2020-03-30 21:27 被阅读0次

写惯了Python脚本,需求越来越多,越来越强烈,那么面对需求,可能就会有各种定制化的要求条件出来,由于一些事情需要经常执行,但是不能人工每次去执行,自然就想到了能不能定时去执行Python脚本,通过查询,映入眼帘的是crontab。

具体执行方法是。

在iterm中输入 crontab -e ,这个的作用是编辑任务名。

随后就打开了vim,可以进行编辑

具体规则是


55390-4ce005cfdbc4bc22.png

在其中我输入了

0 10 * * * python3 /Users/yangchuang/Desktop/translation/num.py
0 15 * * * python3 /Users/yangchuang/Desktop/translation/num.py
0 18 * * * python3 /Users/yangchuang/Desktop/translation/num.py

其目的是希望每天10点、15点、18点的时候执行Python脚本。

保存之后,会弹出是否允许管理电脑,直接点好就可以。


20200330212119.jpg

保存了之后可以通过 crontab -l 来查看是否创建成功

[yangchuang@yangdeMacBook-Pro:~]$ crontab -l
0 10 * * * python3 /Users/yangchuang/Desktop/translation/num.py
0 15 * * * python3 /Users/yangchuang/Desktop/translation/num.py
0 18 * * * python3 /Users/yangchuang/Desktop/translation/num.py

这样就创建成功了,等待明天的好消息了。

今天早上十点没有看到执行的操作,然后看到控制台有一条消息是

You have mail in /var/mail/yangchuang

查看对应的文件描述是

From yangchuang@yangdeMacBook-Pro-2.local  Tue Mar 31 10:00:00 2020
Return-Path: <yangchuang@yangdeMacBook-Pro-2.local>
X-Original-To: yangchuang
Delivered-To: yangchuang@yangdeMacBook-Pro-2.local
Received: by yangdeMacBook-Pro-2.local (Postfix, from userid 501)
    id 78EA1CA2DF97; Tue, 31 Mar 2020 10:00:00 +0800 (CST)
From: yangchuang@yangdeMacBook-Pro-2.local (Cron Daemon)
To: yangchuang@yangdeMacBook-Pro-2.local
Subject: Cron <yangchuang@yangdeMacBook-Pro-2> python3 /Users/yangchuang/Desktop/translation/num.py
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=yangchuang>
X-Cron-Env: <USER=yangchuang>
X-Cron-Env: <HOME=/Users/yangchuang>
Message-Id: <20200331020000.78EA1CA2DF97@yangdeMacBook-Pro-2.local>
Date: Tue, 31 Mar 2020 10:00:00 +0800 (CST)

/bin/sh: python3: command not found

了解到原来是没有找到python3,所以将命令改为

0 10 * * * /usr/local/bin/python3 /Users/yangchuang/Desktop/translation/num.py
0 15 * * * /usr/local/bin/python3 /Users/yangchuang/Desktop/translation/num.py
0 18 * * * /usr/local/bin/python3 /Users/yangchuang/Desktop/translation/num.py

修改Python的路径后,有看到了报错如下:

Traceback (most recent call last):
  File "/Users/yangchuang/Desktop/translation/num.py", line 65, in <module>
    print(markdown)
UnicodeEncodeError: 'ascii' codec can't encode characters in position 5-8: ordinal not in range(128)

这说明Python脚本已经运行起来了,但是因为编码原因没有完全成功运行,因为本身自动运行也没有必要print,所以去掉即可,我把print去掉之后,成功执行了脚本。

参考资料:https://www.jianshu.com/p/333d799aebb1

相关文章

网友评论

      本文标题:在Mac上定时执行Python脚本

      本文链接:https://www.haomeiwen.com/subject/xgebuhtx.html