A solução é adicionar isso no script Python
import os, sys
os.chdir(sys.path[0])
conforme explicado nas respostas do link .
O script /blah/script.py tem -rwxr-xr-x 1 root root permissões e propriedade. O script é:
#!/usr/bin/python
with open('blahblah', 'w') as f:
f.write('hello')
Com crontab -e , tentei:
0 * * * * /blah/script.py
Funciona, mas o arquivo é criado como /root/blahblah em vez de /blah/blahblah .
Como fazer o arquivo de saída no diretório desejado ( /blah/blahblah neste caso) sem codificar seu nome no arquivo .py? Em outras palavras, como chamar um script Python do cron, com o diretório onde o script é armazenado como o diretório de trabalho ?
Observação: isso está funcionando, mas não é muito bom: 0 * * * * cd /home/blah && /usr/bin/python script.py .
A solução é adicionar isso no script Python
import os, sys
os.chdir(sys.path[0])
conforme explicado nas respostas do link .