Перезапуск программы после ошибки в 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
Через try, except можно отлавливать и при возникновении ошибки с помощь модуля os через os.system запускать программу снова. Например:
import os
try:
тут ошибка
except:
os.system('python main.py')
exit()