为什么我在 cronjob 和直接 cmd 调用中的 Path(os.getcwd()) 有不同的行为?

为什么我在 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

答案1

在 crontab 命令前面加上以下前缀:

cd /home/pi/Documents/Project && ...

相关内容