Wywoływanie z skryptu Pythona innego Pythonowskiego skrypty

Odpowiedz Nowy wątek
2019-11-08 10:01
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?

Pozostało 580 znaków

2019-11-08 10:04
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?


Pozostało 580 znaków

2019-11-08 10:26
0

Fork.

Pozostało 580 znaków

2019-11-10 23:18
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"

edytowany 1x, ostatnio: grski, 2019-11-10 23:22

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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