Python3スクリプトを介してCSVファイルにいくつかのデータを書き込もうとしています。 CMDで直接実行すると正常に動作しますが、crontab -e
cronを介して(cronを介して)実行すると機能しません。
これで、ファイルへの直接パス(私のコードから定数文字列にハードコードされています)が必要であることがわかりました。
しかし私の最初の方法は私を混乱させる。コマンドを実行して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 && ...