一、電腦簡介
二、獲取代碼的絕對路徑
由于mac系統使用xlwings 修改excel需要授予文件權限,如果文件被新文件替換后,仍需要授予權限。故我將xlwings用到的excel其放到Excel的data文件夾下/Users/yuanqi/Library/Containers/com.microsoft.Excel/Data并在Data文件夾下創建了一個新文件夾用于儲存python代碼和生成的excel,并將其文件標記為灰色,方便訪問該文件夾。
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 執行結果
可以看出定時任務執行成功
若crontab執行不成功則可以參考鏈接進行設置
參考:https://zhuanlan.zhihu.com/p/564215492
2.6 輸入
可以查看python的運行報錯
由于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的代碼替換即可





