Linux為什麼我在 cronjob 和直接 cmd 呼叫中有不同的
為什麼我在 cronjob 和直接 cmd 呼叫中有不同的 Path(os.getcwd())
行為?
我嘗試通過 Python3 腳本在 CSV 文件中寫入一些數據。如果我直接在 CMD 中執行它,它工作得很好,但如果我通過 cron 執行它(由 設置
crontab -e
)它就不起作用。現在我發現我需要該文件的直接路徑(在我的程式碼中硬編碼為常量字元串)。
但我的第一種方法讓我感到困惑。我執行命令
Path(os.getcwd()).joinpath('Data/test.csv')
並獲得正確的路徑/home/pi/Documents/Project/Data/test.csv
。但是當我通過 cron 執行它時,路徑是/home/pi/Data/test.csv
.該項目位於
/home/pi/Documents/Project/
。為什麼Path(os.getcwd()).joinpath('Data/test.csv')
返回其他路徑,而不是 cmd 直接呼叫?我可以改變我在 cron 和腳本的命令行呼叫中的相同行為嗎?
編輯
這是我的 crontab 條目:
00 9,15 * * * python3 /home/pi/Documents/Projects/temperatureCheck/temperatureCheck.py
使用以下前綴為您的 crontab 命令添加前綴:
cd /home/pi/Documents/Project && ...