Я запускаю оболочку python из crontab каждую минуту:
* * * * * /home/udi/foo/bar.py
/home/udi/foo
имеет некоторые необходимые подкаталоги, такие как /home/udi/foo/log
и /home/udi/foo/config
, к которому относится /home/udi/foo/bar.py
.
Проблема заключается в том, что crontab
запускает script из другого рабочего каталога, поэтому попытка открыть ./log/bar.log
завершается с ошибкой.
Есть ли хороший способ сообщить script изменить рабочий каталог в собственный каталог script? Я хотел бы предложить решение, которое будет работать для любого местоположения script, а не явно указывать script, где оно есть.
EDIT:
os.chdir(os.path.dirname(sys.argv[0]))
Было самым компактным изящным решением. Спасибо за ваши ответы и объяснения!