Я создал master.py
для запуска других сценариев.
from subprocess import PIPE, STDOUT, run
def main():
command = ["python3", "file1.py"]
print("Executing: {}".format(command))
exit_code, output_string = run_command(command)
print(output_string)
command = ["python3", "file2.py"]
print("Executing: {}".format(command))
exit_code, output_string = run_command(command)
print(output_string)
command = ["python3", "file3.py"]
print("Executing: {}".format(command))
exit_code, output_string = run_command(command)
print(output_string)
print("Exiting master.py with status_code of {} because {NAME_OF_FILE_THAT_FAILED} failed.")
def run_command(command_to_run):
result = run(command_to_run, stdout=PIPE, stderr=STDOUT)
return result.returncode, result.stdout.decode()
if __name__ == "__main__":
main()
Я пытаюсь захватить sys.exit()
каждого скрипта подпроцесса, то есть захватить то, с чем file1.py
, file2.py
и file3.py
вышли. Если все задания пройдены, то master.py
будет существовать с 0
, но если хотя бы 1 вспомогательное задание завершится неудачно и завершится с помощью 1
, тогда я хочу, чтобы основное задание также завершилось с 1.
Как только он захватывает sys.exit
из всех подзадач, основываясь на их результатах, я хотел бы напечатать эту ошибку на конечном выводе мастера (оператор печати)