熱線電話:13121318867

登錄
2023-08-02 閱讀量: 3528
crontab 定時運行python文件

一、電腦簡介

image.png

二、獲取代碼的絕對路徑

  1. 由于mac系統使用xlwings 修改excel需要授予文件權限,如果文件被新文件替換后,仍需要授予權限。故我將xlwings用到的excel其放到Excel的data文件夾下/Users/yuanqi/Library/Containers/com.microsoft.Excel/Data并在Data文件夾下創建了一個新文件夾用于儲存python代碼和生成的excel,并將其文件標記為灰色,方便訪問該文件夾。

    image.png

image.png


2.打開終端

2.1 輸入

which python

獲取python地址,本機python地址:/Users/yuanqi/anaconda3/bin/python

2.2 輸入

sudo launchctl list | grep cron

2.3 輸入

crontab -e

切換英文輸入法,按i,切換到輸入界面,輸入一下內容

18 17 * * 3 /Users/yuanqi/anaconda3/bin/python /Users/yuanqi/Library/Containers/com.microsoft.Excel/Data/excel/test1.py

這串命令表示 每周三17:18 使用python運行test1.py


/Users/yuanqi/anaconda3/bin/python是python地址

/Users/yuanqi/Library/Containers/com.microsoft.Excel/Data/excel/test1.py是excel地址

其中 18 17 * * 3 分別表示 分 時 日 月 周,輸入*表示不設置,例如 18 17 3 3 * 表示3月3日17:18執行


2.4 輸入

crontab -l

查看設置好的定時執行任務

2.5 執行結果

image.png


可以看出定時任務執行成功


若crontab執行不成功則可以參考鏈接進行設置

參考:https://zhuanlan.zhihu.com/p/564215492


2.6 輸入

mail

可以查看python的運行報錯

image.png


由于crontab沒有添加自動化權限,不能控制excel,所以執行失敗


2.7 解決方案

bing AI 給出使用openpyxl的解決方案

代碼如下:

import openpyxl

from openpyxl.drawing.image import Image


fig.savefig(‘foo.png') #保存plot的圖片

img_path = 'foo.png'

img = Image(img_path) #只有將圖片Image后才能添加

book =openpyxl.load_workbook(“result_{}.xlsx”.format(day)) #打開excel

book.create_sheet(title=“趨勢圖") #在后面添加sheet,并命名

book[“趨勢圖"].add_image(img) # “趨勢圖"工作表添加圖片

book.save(“result_{}.xlsx”.format(day)) #保存excel

用這幾行代碼將xlwings的代碼替換即可



mac 定時運行python.pdf


480.0000
1
關注作者
收藏
評論(1)

發表評論
ermutuxia
2023-08-07

牛!

480.0000 1 0 回復
推薦帖子
條評論
日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码