
Tengo un script en Python que deseo ejecutar a las 5 p.m. todos los viernes.
¿Cómo puedo lograr eso?
Entiendo que podría hacer esto a través de cron. Sin embargo, he utilizado rutas de archivos relativas en el script de Python y, por lo tanto, deben ejecutarse en el directorio específico con los otros archivos. He visto que puedo lograr esto usando el operador de tubería, pero no he podido encontrar un ejemplo.
Respuesta1
Hay varias maneras de lograr esto, enumeraré solo 2 formas:
(1) Utilice un "Wrapper Shell Script" de Bash en su trabajo cron para ejecutarlo a las 5 p.m.
En el "Wrapper Script", primero "cd X", donde X es el directorio necesario.
Luego ejecute el script Python. Se ejecutará en el Directorio X.
# My Bash Wrapper Script
cd X # use the necessary Directory here
python MyPythonScript.py
(2) En su script de Python, importe el módulo "os" y use "os.chdir" para cambiar el directorio y luego continúe con el script de Python.
# My Python Script
import os
os.chdir(X) # use necessary Directory here
# continue with Python Script
# no other Changes necessary
Estas 2 formas son muy fáciles de usar.
Respuesta2
Puede simplemente acceder al directorio antes de ejecutar el script.
0 17 * * Fri cd /path/to/dir && python myscript.py
No se necesita envoltorio.