Wie führe ich ein Python-Skript automatisch in einem bestimmten Verzeichnis aus?

Wie führe ich ein Python-Skript automatisch in einem bestimmten Verzeichnis aus?

Ich habe ein Python-Skript, das ich jeden Freitag um 17 Uhr ausführen möchte.
Wie kann ich das erreichen?

Ich verstehe, dass ich dies über Cron tun könnte. Da ich jedoch im Python-Skript relative Dateipfade verwendet habe, muss es in dem spezifischen Verzeichnis mit den anderen Dateien ausgeführt werden. Ich habe gesehen, dass ich dies möglicherweise mit dem Pipe-Operator erreichen kann, konnte jedoch kein Beispiel finden.

Antwort1

Es gibt verschiedene Möglichkeiten, dies zu erreichen. Ich werde nur zwei Möglichkeiten auflisten:

(1) Verwenden Sie in Ihrem Cron-Job ein Bash-„Wrapper-Shell-Skript“, um es um 17:00 Uhr auszuführen. Führen Sie
im „Wrapper-Skript“ zuerst „cd X“ aus, wobei X das erforderliche Verzeichnis ist.
Führen Sie dann das Python-Skript aus. Es wird im Verzeichnis X ausgeführt.

# My Bash Wrapper Script  
cd X # use the necessary Directory here  
python MyPythonScript.py  

(2) Importieren Sie in Ihrem Python-Skript das Modul „os“ und verwenden Sie „os.chdir“, um das Verzeichnis zu ändern. Fahren Sie dann mit dem Python-Skript fort.

# My Python Script  
import os  
os.chdir(X) # use necessary Directory here  
# continue with Python Script  
# no other Changes necessary  

Diese beiden Möglichkeiten sind sehr einfach zu verwenden.

Antwort2

Sie können vor dem Ausführen des Skripts einfach in das Verzeichnis wechseln.

0 17 * * Fri cd /path/to/dir && python myscript.py

Keine Hülle erforderlich.

verwandte Informationen