毎分 crontab から Python シェルを実行します。
* * * * * /home/udi/foo/bar.py
/home/udi/foo
/home/udi/foo/log
や など/home/udi/foo/config
、必要なサブディレクトリがいくつかあり/home/udi/foo/bar.py
ます。
問題はcrontab
、別の作業ディレクトリからスクリプトを実行するため、開こうとすると./log/bar.log
失敗することです。
作業ディレクトリをスクリプト自身のディレクトリに変更するようにスクリプトに指示する良い方法はありますか? スクリプトの場所を明示的に伝えるのではなく、任意のスクリプトの場所で機能するソリューションが欲しいと思います。
編集:
os.chdir(os.path.dirname(sys.argv[0]))
最もコンパクトでエレガントなソリューションでした。あなたの答えと説明をありがとう!