写惯了Python脚本,需求越来越多,越来越强烈,那么面对需求,可能就会有各种定制化的要求条件出来,由于一些事情需要经常执行,但是不能人工每次去执行,自然就想到了能不能定时去执行Python脚本,通过查询,映入眼帘的是crontab。
具体执行方法是。
在iterm中输入 crontab -e ,这个的作用是编辑任务名。
随后就打开了vim,可以进行编辑
具体规则是
![](https://img.haomeiwen.com/i2238950/2ae1c726cd53ec16.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脚本。
保存之后,会弹出是否允许管理电脑,直接点好就可以。
![](https://img.haomeiwen.com/i2238950/859a4dca0416e6d6.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去掉之后,成功执行了脚本。
网友评论