Wywoływanie z skryptu Pythona innego Pythonowskiego skrypty

0

Witam czy jest możliwość żeby za pomocą jednego Skryptu odpalać inny skrypt który nanosi zmiany na bazie i dość często się rozłącza. Ze jeżeli wywali błąd to żeby odpalił go ponownie? Czy można prosić o jakiś przykład?

0

np. Calling an external command from Python ?
Ale jeśli to skrypt w Pytonie to czy nie możesz zmodyfikować go tak żeby działał w pętli?

0

Fork.

0

Coś w stylu:

import subprocess

while True:
    try:
        process_result = subprocess.run("python ./your-script.py", shell=True, check=True, capture_output=True)
        break
    except subprocess.CalledProcessError:
        continue

czy też bardziej explicite:

import subprocess

while True:
        process_result = subprocess.run("python ./your-script.py", shell=True, capture_output=True)
        if process_result.returncode == 0:
            break

btw. process_result, dzięki capture_output, będzie przechowywał to co twój skrypt wywali na STDOUT, więc jeśli jest to mega intensywnie logowo operacja (kilka gb które nie zmieści sie w pamięci, możesz chcieć wyrzucić capture_output z inwokacji funkcji - domyślnie jest na False) lub zrobić coś w stylu:
"python ./your-script.py >> logs"

1 użytkowników online, w tym zalogowanych: 0, gości: 1