Перезапуск программы после ошибки в python

import openpyxl
import sched, time

s = sched.scheduler(time.time, time.sleep)

def do_something(sc):

    wb = openpyxl.reader.excel.load_workbook ("motras.xlsm")

    sheet = wb.active

    b =(sheet['b3'].value)
    c = (sheet['c3'].value)

    ActSale =(b>c*3)
    ActBuy =(b*3<c)
        
    if ActSale:
        print(123)

    if ActBuy:
        print(321)
            
s.enter(5, 1, do_something, (sc,))
s.enter(1, 1, do_something, (s,))
s.run()

Друзья, есть такой вот накостыленный костыль. Он забирает данные из excel файла, но данные в файле обновляются раз в 5 секунд. Если время выполнения программы python и время обновления данных в excel совпадает, происходит ошибка. Подскажите пожалуйста, есть ли возможность поместить программу в цикл, чтобы при остановке от ошибки, программа запускалась снова. Если такое сделать можно, то подскажите как ? Если не сложно, скиньте готовый код, буду безмерно благодарен !


Ответы (2 шт):

Автор решения: Даниил Ермошин

А какую ошибку выдает? Попробуйте перехватить ошибку блоком try except

→ Ссылка
Автор решения: stasden2009

Через try, except можно отлавливать и при возникновении ошибки с помощь модуля os через os.system запускать программу снова. Например:

import os
try:
    тут ошибка
except:
    os.system('python main.py')
    exit()
→ Ссылка